Compartir a través de


Clase single_assignment

Un bloque de mensajería single_assignment es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un único message en el que solo se puede escribir una vez.

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Parámetros

  • _Type
    El tipo de carga del mensaje almacenado y propagado por el búfer.

Miembros

Constructores públicos

Name

Descripción

single_assignment::single_assignment (Constructor)

Sobrecargado. Construye un bloque de mensajería single_assignment.

single_assignment::~single_assignment (Destructor)

Destruye el bloque de mensajería single_assignment.

Métodos públicos

Name

Descripción

single_assignment::has_value (Método)

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

single_assignment::value (Método)

Obtiene una referencia a la carga útil actual del mensaje que se está almacenado en el bloque de mensajería single_assignment.

Métodos protegidos

Name

Descripción

single_assignment::accept_message (Método)

Acepta un mensaje que fue proporcionado por este bloque de mensajería single_assignment, devolviendo una copia del mensaje al llamador.

single_assignment::consume_message (Método)

Consume un mensaje que fue proporcionado anteriormente por single_assignment y reservado por el destino, devolviendo una copia del mensaje al llamador.

single_assignment::link_target_notification (Método)

Una devolución de llamada que notifica que se ha vinculado un nuevo destino a este bloque de mensajería single_assignment.

single_assignment::propagate_message (Método)

De forma asincrónica, pasa un mensaje de un bloque ISource a este bloque de mensajería single_assignment. Lo invoca el método propagate, cuando lo llama un bloque de origen.

single_assignment::propagate_to_any_targets (Método)

Coloca message_PMessage en este bloque de mensajería single_assignment y lo ofrece a todos los destinos vinculados.

single_assignment::release_message (Método)

Libera una reserva de mensaje anterior. (Invalida source_block::release_message.)

single_assignment::reserve_message (Método)

Reserva un mensaje ofrecido previamente por este bloque de mensajería single_assignment. (Invalida source_block::reserve_message.)

single_assignment::resume_propagation (Método)

Reanuda la propagación una vez liberada una reserva. (Invalida source_block::resume_propagation.)

single_assignment::send_message (Método)

De forma sincrónica, pasa un mensaje de un bloque ISource a este bloque de mensajería single_assignment. Lo invoca el método send, cuando lo llama un bloque de origen.

Comentarios

Un bloque de mensajería single_assignment propaga las copias de su mensaje a cada destino.

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

Jerarquía de herencia

ISource

source_block

ITarget

propagator_block

single_assignment

Requisitos

Encabezado: agents.h

Espacio de nombres: Simultaneidad

Vea también

Referencia

Espacio de nombres de simultaneidad

Clase overwrite_buffer

Clase unbounded_buffer