Compartilhar via


source_block classe

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

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 o processamento de mensagem.

Membros

Definições de tipo públicas

Nome

Descrição

target_iterator

O iterador para movimentar os destinos conectados.

Construtores públicos

Nome

Descrição

Construtor de source_block::source_block

Constrói uma source_block objeto.

source_block:: ~ source_block destruidor

Destrói a source_block objeto.

Métodos públicos

Nome

Descrição

Método de source_block::accept

Aceita uma mensagem que foi oferecida por esse source_block o objeto, transferência de propriedade para o chamador.

Método de source_block::acquire_ref

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

Método de source_block::consume

Consome uma mensagem anteriormente oferecida por esse source_block object e reservado com êxito pelo destino, transferência de propriedade para o chamador.

Método de source_block::link_target

Isso vincula um bloco de destino source_block objeto.

Método de source_block::Release

Libera uma reserva de mensagem bem-sucedida anterior.

Método de source_block::release_ref

Libera uma contagem de referência sobre isso source_block objeto.

Método de source_block::reserve

Reserva uma mensagem anteriormente oferecida por esse source_block objeto.

Método de source_block::unlink_target

Desvincula um bloco de destino a partir dessa source_block objeto.

Método de source_block::unlink_targets

Desvincula todos os blocos de destino a partir dessa source_block objeto. (Substitui ISource::unlink_targets.)

Métodos protegidos

Nome

Descrição

Método de source_block::accept_message

Quando substituído em uma classe derivada, aceita uma mensagem oferecida pela origem. Blocos de mensagem devem substituir esse método para validar o _MsgId e retornar uma mensagem.

Método de source_block::async_send

Filas de mensagens de forma assíncrona e inicia uma tarefa de propagação, se isso não foi feito já

Método de source_block::consume_message

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

Método de source_block::initialize_source

Inicializa o message_propagator deste source_block.

Método de source_block::link_target_notification

Um retorno de chamada que notifica que um novo destino tenha sido vinculado a esta source_block objeto.

Método de source_block::propagate_to_any_targets

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

Método de source_block::release_message

Quando substituído em uma classe derivada, libera uma reserva de mensagem anterior.

Método de source_block::remove_targets

Remove todos os links de destino para o bloco de código-fonte. Isso deve ser chamado a partir do destruidor.

Método de source_block::reserve_message

Quando substituído em uma classe derivada, reserva-se uma mensagem anteriormente oferecida por esse source_block objeto.

Método de source_block::resume_propagation

Quando substituído em uma classe derivada, retoma a propagação após uma reserva foi lançada.

Método de source_block::sync_send

Modo síncrono, filas de mensagens e inicia uma tarefa de propagação, se isso não foi feito já.

Método de source_block::unlink_target_notification

Um retorno de chamada que notifica que um destino foi desvinculado desse source_block objeto.

Método de source_block::wait_for_outstanding_async_sends

Aguarda até que todas as propagações assíncronas concluir. Essa espera específicos de propagador de rotação é usada em destruidores de blocos de mensagem para certificar-se de que todas as propagações assíncronas tenham tempo para concluir antes de destruir o bloco.

Comentários

Blocos de mensagem devem derivar desse bloco de tirar proveito do gerenciamento de link e sincronização fornecidos por esta classe.

Hierarquia de herança

Podem ser

source_block

Requisitos

Cabeçalho: Agents.h

Namespace: Simultaneidade

Consulte também

Referência

Namespace de simultaneidade

Podem ser de classe