source_block classe
O source_block classe é uma classe base abstrata para blocos de código-fonte.A classe fornece funcionalidade de gerenciamento de link básico como verificações de erro bem comuns.
template<
class _TargetLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;
Parâmetros
_TargetLinkRegistry
Registro de link a ser usado para manter os links de destino._MessageProcessorType
Tipo de processador para processamento de mensagem.
Membros
Typedefs pública
Nome |
Descrição |
---|---|
target_iterator |
O iterador para movimentar os destinos conectados. |
Construtores públicos
Nome |
Descrição |
---|---|
Constrói um source_block objeto. |
|
Destrói a source_block objeto. |
Métodos públicos
Nome |
Descrição |
---|---|
Aceita uma mensagem que foi oferecida por esse source_block objeto, transferência de propriedade para o chamador. |
|
Adquire uma contagem de referência sobre isso source_block o objeto, para impedir a exclusão. |
|
Consome uma mensagem anteriormente oferecida por esse source_block de objeto e reservado com êxito pelo destino, transferência de propriedade para o chamador. |
|
Vincula um bloco de destino para esta source_block objeto. |
|
Libera uma reserva de mensagem de sucesso anterior. |
|
Libera uma contagem de referência sobre isso source_block objeto. |
|
Reserva uma mensagem anteriormente oferecida por esse source_block objeto. |
|
Desvincula um bloco de destino desta source_block objeto. |
|
Desvincula todos os blocos de destino desta source_block objeto.(Substitui ISource::unlink_targets.) |
Métodos protegidos
Nome |
Descrição |
---|---|
Quando substituído em uma classe derivada, aceita uma mensagem oferecida pela fonte.Blocos de mensagem devem substituir esse método para validar o _MsgId e retornar uma mensagem. |
|
Filas de mensagens de forma assíncrona e inicia uma tarefa de propagação, se isso não foi feito já |
|
Quando substituído em uma classe derivada, consome uma mensagem que foi reservada anteriormente. |
|
Permite em lote para este bloco de processamento. |
|
Inicializa o message_propagator deste source_block. |
|
Um retorno de chamada que notifica que um novo destino foi vinculado a esta source_block objeto. |
|
Processar mensagens de entrada.Isso é útil para blocos de propagador, derivam de source_block |
|
Propaga mensagens de destinos. |
|
Quando substituído em uma classe derivada, propaga a mensagem dada a qualquer ou todos os destinos vinculados.Esta é a rotina de propagação principais blocos de mensagem. |
|
Quando substituído em uma classe derivada, libera uma reserva mensagem anterior. |
|
Remove todos os links de destino para este bloco de origem.Isso deve ser chamado a partir o destruidor. |
|
Quando substituído em uma classe derivada, reserva uma mensagem anteriormente oferecida por esse source_block objeto. |
|
Quando substituído em uma classe derivada, retoma a propagação depois lançou uma reserva. |
|
Sincronicamente, filas de mensagens e inicia uma tarefa de propagação, se isso não foi feito já. |
|
Um retorno de chamada que notifica que um destino foi desvinculado desse source_block objeto. |
|
Aguarda até que todas as propagações assíncronas concluir.Essa espera específicas de propagador de rotação é usada em destruidores de blocos de mensagem para certificar-se de que todas as propagações assíncronas tem tempo para terminar antes de destruir o bloco. |
Comentários
Blocos de mensagem devem derivar este bloco para tirar proveito do gerenciamento de link e sincronização fornecido por esta classe.
Hierarquia de herança
source_block
Requisitos
Cabeçalho: agents.h
Namespace: concorrência