Compartilhar via


Classe source_block

A classe de source_block é uma classe base abstrata para blocos de origem somente. A classe fornece verificações básicas da funcionalidade de gerenciamento de link bem como de erro comum.

template<
   class _TargetLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;

Parâmetros

  • _TargetLinkRegistry
    O Registro de link para ser usado com o destino vincula.

  • _MessageProcessorType
    Tipo de processador para o processamento de mensagem.

Membros

Typedefs Públicas

Nome

Descrição

target_iterator

O iterador para percorrer os destinos conectados.

Construtores Públicos

Nome

Descrição

Construtor source_block::source_block

Constrói um objeto source_block.

Destruidor source_block::~source_block

Destrói o objeto source_block.

Métodos Públicos

Nome

Descrição

Método source_block::accept

Aceita uma mensagem que é oferecida por esse objeto de source_block , transferindo propriedade ao chamador.

Método source_block::acquire_ref

Adquire uma contagem de referência nesse objeto de source_block , para evitar a exclusão.

Método source_block::consume

Consome uma mensagem oferecida anteriormente por esse objeto de source_block e reservada com êxito pelo destino, transferindo propriedade ao chamador.

Método source_block::link_target

Vincula um bloco de destino para este objeto de source_block .

Método source_block::release

Libera uma reserva com êxito anterior da mensagem.

Método source_block::release_ref

Libera uma contagem de referência nesse objeto de source_block .

Método source_block::reserve

Reserva uma mensagem oferecida anteriormente por esse objeto de source_block .

Método source_block::unlink_target

Unlinks um bloco de destino deste objeto de source_block .

Método source_block::unlink_targets

Unlinks todos os blocos de destino deste objeto de source_block . (Substitui ISource::unlink_targets.)

Métodos Protegidos

Nome

Descrição

Método source_block::accept_message

Quando substituído em uma classe derivada, aceita uma mensagem oferecida pela origem. Os bloqueios da mensagem deve substituir esse método para validar _MsgId e retornar uma mensagem.

Método source_block::async_send

As linhas de forma assíncrona acima mensagens e inicia uma tarefa de propagação, se isso já não tiver sido feita

Método source_block::consume_message

Quando substituído em uma classe derivada, consome uma mensagem que foi reservado anteriormente.

Método source_block::enable_batched_processing

Habilita processamento em lotes o processamento para este bloco.

Método source_block::initialize_source

Inicializa message_propagator nesse source_block.

Método source_block::link_target_notification

Um retorno de chamada que notifica que um novo destino esteve associada a este objeto de source_block .

Método source_block::process_input_messages

Mensagens de entrada do processo. Isso só é útil para os blocos de propagator, que deriva de source_block

Método source_block::propagate_output_messages

Mensagens de propagação para os destinos.

Método source_block::propagate_to_any_targets

Quando substituído em uma classe derivada, em propagações a mensagem fornecida para qualquer ou em todos os destinos vinculados. Esta é a rotina principal de propagação de blocos da mensagem.

Método source_block::release_message

Quando substituído em uma classe derivada, versões uma reserva anterior da mensagem.

Método source_block::remove_targets

Remove todos os links de destino para esse bloco de origem. Isso deve ser chamado de destruidor.

Método source_block::reserve_message

Quando substituído em uma classe derivada, reservas que uma mensagem oferecida anteriormente por esse objeto de source_block .

Método source_block::resume_propagation

Quando substituído em uma classe derivada, propagação de resumos depois que uma reserva foi liberada.

Método source_block::sync_send

Enfileira mensagens de forma síncrona acima e inicia uma tarefa de propagação, se isso já não tiver sido feita.

Método source_block::unlink_target_notification

Um retorno de chamada que notifica que um destino unlinked deste objeto de source_block .

Método source_block::wait_for_outstanding_async_sends

Espera para que todas as propagações assíncronas serem concluídas. Essa espera propagator- específica de rotação é usada em destruidores de blocos de mensagem para garantir que todas as propagações assíncronas têm tempo para ser concluída antes de destruir o bloco.

Comentários

Os bloqueios da mensagem deve derivar do bloco para tirar proveito de gerenciamento e de sincronização de link fornecidos por essa classe.

Hierarquia de Herança

ISource

source_block

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe ISource