Partilhar via


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

Dd492847.collapse_all(pt-br,VS.110).gifTypedefs pública

Nome

Descrição

target_iterator

O iterador para movimentar os destinos conectados.

Dd492847.collapse_all(pt-br,VS.110).gifConstrutores públicos

Nome

Descrição

Construtor de source_block::source_block

Constrói um source_block objeto.

source_block:: ~ source_block destruidor

Destrói a source_block objeto.

Dd492847.collapse_all(pt-br,VS.110).gifMétodos públicos

Nome

Descrição

método de source_block::accept

Aceita uma mensagem que foi oferecida por esse source_block 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 impedir a exclusão.

método de source_block::consume

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

método de source_block::link_target

Vincula um bloco de destino para esta source_block objeto.

método de source_block::release

Libera uma reserva de mensagem de sucesso 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 desta source_block objeto.

método de source_block::unlink_targets

Desvincula todos os blocos de destino desta source_block objeto.(Substitui ISource::unlink_targets.)

Dd492847.collapse_all(pt-br,VS.110).gifMétodos protegidos

Nome

Descrição

método de source_block::accept_message

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.

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::enable_batched_processing

Permite em lote para este bloco de processamento.

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 foi vinculado a esta source_block objeto.

Método de source_block::process_input_messages

Processar mensagens de entrada.Isso é útil para blocos de propagador, derivam de source_block

Método de source_block::propagate_output_messages

Propaga mensagens de destinos.

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 vinculados.Esta é a rotina de propagação principais blocos de mensagem.

método de source_block::release_message

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

método de source_block::remove_targets

Remove todos os links de destino para este bloco de origem.Isso deve ser chamado a partir o destruidor.

método de source_block::reserve_message

Quando substituído em uma classe derivada, reserva 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 depois lançou uma reserva.

método de source_block::synchronization_send

Sincronicamente, 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í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

ISource

source_block

Requisitos

Cabeçalho: agents.h

Namespace: concorrência

Consulte também

Referência

simultaneidade Namespace

Classe podem ser