Compartir a través de


Clase choice

Un bloque de mensajería choice es un bloque de varios orígenes y de destino único que representa una interacción del flujo de control con un conjunto de orígenes. El bloque de elección esperará a cualquiera de los orígenes para generar un mensaje y propagará el índice del origen que generó el mensaje.

template<
   class _Type
>
class choice: public ISource<size_t>;

Parámetros

  • _Type
    Un tipo basado en tuple que representa las cargas útiles de orígenes de entrada.

Miembros

Typedefs públicas

Name

Descripción

type

Un alias de tipo para _Type.

Constructores públicos

Name

Descripción

choice::choice (Constructor)

Sobrecargado. Construye un bloque de mensajería choice.

choice::~choice (Destructor)

Destruye el bloque de mensajería choice.

Métodos públicos

Name

Descripción

choice::accept (Método)

Acepta un mensaje que fue proporcionado por este bloque choice, transfiriendo la propiedad al llamador.

choice::acquire_ref (Método)

Adquiere un recuento de referencias en este bloque de mensajería choice, para evitar la eliminación.

choice::consume (Método)

Consume un mensaje que fue proporcionado anteriormente por este bloque de mensajería choice y correctamente reservado por el destino, transfiriendo la propiedad al llamador.

choice::has_value (Método)

Comprueba si este bloque de mensajería choice se ha inicializado con un valor.

choice::index (Método)

Devuelve un índice en tuple que representa el elemento seleccionado por el bloque de mensajería choice.

choice::link_target (Método)

Vincula un bloque de destino con este bloque de mensajería choice.

choice::release (Método)

Libera una reserva de mensaje anterior correcta.

choice::release_ref (Método)

Libera un recuento de referencias en este bloque de mensajería choice.

choice::reserve (Método)

Reserva un mensaje ofrecido previamente por este bloque de mensajería choice.

choice::unlink_target (Método)

Desvincula un bloque de destino de este bloque de mensajería choice.

choice::unlink_targets (Método)

Desvincula todos los destinos de este bloque de mensajería choice. (Invalida ISource::unlink_targets.)

choice::value (Método)

Obtiene el mensaje cuyo índice seleccionó el bloque de mensajería choice.

Comentarios

El bloque de elección asegura que únicamente se consume uno de los mensajes entrantes.

Para obtener más información, vea Bloques de mensajes asincrónicos.

Jerarquía de herencia

ISource

choice

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

join (Clase)

Clase single_assignment

make_choice (Función)

tuple (Clase)