Compartilhar via


Classe propagator_block

A classe de propagator_block é uma classe base abstrata para os blocos de mensagem que é uma origem e destino. Combina a funcionalidade das classes de source_block e de 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
    O Registro de link para ser usado com o destino vincula.

  • _SourceLinkRegistry
    O Registro de link para ser usado com a origem vincula.

  • _MessageProcessorType
    O tipo de processador para o processamento de mensagem.

Membros

Typedefs Públicas

Nome

Descrição

source_iterator

O tipo de iterador para source_link_manager para este propagator_block.

Construtores Públicos

Nome

Descrição

Construtor propagator_block::propagator_block

Constrói um objeto propagator_block.

Destruidor propagator_block::~propagator_block

Destrói um objeto de propagator_block .

Métodos Públicos

Nome

Descrição

Método propagator_block::propagate

Passa de forma assíncrona uma mensagem de um bloco de origem para este bloco de destino.

Método propagator_block::send

Inicia de forma síncrona uma mensagem a esse bloco. Chamado por um bloco de ISource . Quando essa função é concluída, a mensagem será propagado no bloco.

Métodos Protegidos

Nome

Descrição

Método propagator_block::decline_incoming_messages

Indica ao bloco que as novas mensagens devem ser diminuídas.

Método propagator_block::initialize_source_and_target

Inicializa o objeto base. Especificamente, o objeto de message_processor precisa ser inicializado.

Método propagator_block::link_source

Vincula um bloco de origem especificado para este objeto de propagator_block .

Método propagator_block::process_input_messages

Mensagens de entrada do processo. Isso só é útil para os blocos de propagator, que deriva de source_block (substituições source_block::process_input_messages.)

Método propagator_block::propagate_message

Quando substituído em uma classe derivada, esse método passa de forma assíncrona uma mensagem de um bloco de ISource a este objeto de propagator_block . É invocado pelo método de propagate , quando chamado por um bloco de origem.

Método propagator_block::register_filter

Registra um método de filtro que é invocado em cada mensagem recebida.

Método propagator_block::remove_network_links

Remove todos os links de rede de origem e de destino deste objeto de propagator_block .

Método propagator_block::send_message

Quando substituído em uma classe derivada, esse método de forma síncrona transmite uma mensagem de um bloco de ISource a este objeto de propagator_block . É invocado pelo método de send , quando chamado por um bloco de origem.

Método propagator_block::unlink_source

Unlinks um bloco de origem especificado deste objeto de propagator_block .

Método propagator_block::unlink_sources

Unlinks todos os blocos de origem deste objeto de propagator_block . (Substitui ITarget::unlink_sources.)

Comentários

Para evitar a herança múltipla, a classe de propagator_block herda da classe e source_block da classe abstrata de ITarget . A maioria da funcionalidade na classe de target_block é replicada aqui.

Hierarquia de Herança

ISource

ITarget

source_block

propagator_block

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe source_block

Classe ITarget