Compartir a través de


propagator_block (Clase)

La clase propagator_block es una clase base abstracta para los bloques de mensaje que son un bloque de origen y de destino. Combina la funcionalidad de las clases source_block y target_block.

template<
   class _TargetLinkRegistry,
   class _SourceLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class propagator_block : public source_block<_TargetLinkRegistry, _MessageProcessorType>, public ITarget<typename _SourceLinkRegistry::type::source_type>;

Parámetros

  • _TargetLinkRegistry
    El Registro del vínculo que se va a usar para retener los vínculos de destino.

  • _SourceLinkRegistry
    El Registro del vínculo que se va a usar para retener los vínculos de origen.

  • _MessageProcessorType
    El tipo de procesador para el procesamiento de mensajes.

Miembros

Typedefs públicas

Name

Descripción

source_iterator

El tipo de iterador para source_link_manager, para este propagator_block.

Constructores públicos

Name

Descripción

propagator_block::propagator_block (Constructor)

Construye un objeto propagator_block.

propagator_block::~propagator_block (Destructor)

Destruye un objeto propagator_block.

Métodos públicos

Name

Descripción

propagator_block::propagate (Método)

De forma asincrónica, pasa un mensaje de un bloque de orígenes a este bloque de destino.

propagator_block::send (Método)

De forma sincrónica, inicia un mensaje a este bloque. Lo llama un bloque ISource. Cuando esta función se completa, el mensaje ya se habrá propagado en el bloque.

Métodos protegidos

Name

Descripción

propagator_block::decline_incoming_messages (Método)

Indica al bloque que se deben rechazar los mensajes nuevos.

propagator_block::initialize_source_and_target (Método)

Inicializa el objeto base. Específicamente, el objeto message_processor debe inicializarse.

propagator_block::link_source (Método)

Vincula un bloque de orígenes especificado con este objeto propagator_block.

propagator_block::process_input_messages (Método)

Mensajes de entrada de proceso. Esto sólo es útil para los bloques propagador, que derivan de source_block (reemplaza source_block::process_input_messages.)

propagator_block::propagate_message (Método)

Cuando se invalida en una clase derivada, este método pasa de forma asincrónica un mensaje de un bloque ISource a este objeto propagator_block. Lo invoca el método propagate, cuando lo llama un bloque de origen.

propagator_block::register_filter (Método)

Registra un método de filtro que se invocará en cada mensaje recibido.

propagator_block::remove_network_links (Método)

Quita todos los vínculos de red de origen y de destino de este objeto propagator_block.

propagator_block::send_message (Método)

Cuando se invalida en una clase derivada, este método pasa de forma sincrónica un mensaje de un bloque ISource a este objeto propagator_block. Lo invoca el método send, cuando lo llama un bloque de origen.

propagator_block::unlink_source (Método)

Desvincula un bloque de orígenes especificado desde este objeto propagator_block.

propagator_block::unlink_sources (Método)

Desvincula todos los bloques de origen desde este objeto propagator_block. (Invalida ITarget::unlink_sources.)

Comentarios

Para evitar la herencia múltiple, la clase propagator_block hereda de la clase source_block y de la clase abstracta ITarget. La mayor parte de la funcionalidad de la clase target_block se replica aquí.

Jerarquía de herencia

ISource

ITarget

source_block

propagator_block

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

source_block (Clase)

ITarget (Clase)