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.

Members

Dd470880.collapse_all(es-es,VS.110).gifConstructores 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.

Dd470880.collapse_all(es-es,VS.110).gifMé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.

Dd470880.collapse_all(es-es,VS.110).gifMé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

ITarget

source_block

propagator_block

single_assignment

Requisitos

Encabezado: agents.h

Simultaneidad deespacio de nombres:

Vea también

Referencia

concurrency (Espacio de nombres)

Clase overwrite_buffer

Clase unbounded_buffer