Compartir a través de


Clase transformer

Un bloque de mensajería transformer es un bloque propagator_block de destino único, de varios orígenes y ordenado capaz de almacenar un número ilimitado de mensajes de un tipo diferente.

template<
   class _Input,
   class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;

Parámetros

  • _Input
    El tipo de carga de los mensajes aceptados por el procesador.

  • _Output
    El tipo de carga de los mensajes almacenados y propagados fuera por el búfer.

Miembros

Constructores públicos

Name

Descripción

transformer::transformer (Constructor)

Sobrecargado. Construye un bloque de mensajería transformer.

transformer::~transformer (Destructor)

Destruye el bloque de mensajería transformer.

Métodos protegidos

Name

Descripción

transformer::accept_message (Método)

Acepta un mensaje que fue proporcionado por este bloque de mensajería transformer, transfiriendo la propiedad al llamador.

transformer::consume_message (Método)

Consume un mensaje que fue proporcionado anteriormente por transformer y reservado por el destino, transfiriendo la propiedad al llamador.

transformer::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 transformer.

transformer::propagate_message (Método)

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

transformer::propagate_to_any_targets (Método)

Ejecuta la función transformer en los mensajes entrantes.

transformer::release_message (Método)

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

transformer::reserve_message (Método)

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

transformer::resume_propagation (Método)

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

transformer::send_message (Método)

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

transformer::supports_anonymous_source (Método)

Invalida el método de supports_anonymous_source para indicar que este bloque puede aceptar mensajes proporcionados al por un origen que no están vinculados. (Reemplaza ITarget::supports_anonymous_source.)

Comentarios

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

Jerarquía de herencia

ISource

ITarget

source_block

propagator_block

transformer

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

Clase call