single_assignment classe

A single_assignment Bloco de mensagens é um para vários destinos, várias fontes, ordenados propagator_block capaz de armazenar uma única gravação-depois de message.

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Parâmetros

  • _Type
    O tipo de carga da mensagem, armazenados e propagada por buffer.

Membros

Construtores públicos

Nome

Descrição

Construtor de single_assignment::single_assignment

Sobrecarregado. Constrói uma single_assignment mensagens bloco.

single_assignment:: ~ single_assignment destruidor

Destrói a single_assignment de mensagens do bloco.

Métodos públicos

Nome

Descrição

Método de single_assignment::has_value

Verifica se esse single_assignment o bloco de mensagens foi inicializado com um valor ainda.

Método de single_assignment::value

Obtém uma referência para a atual carga da mensagem que está sendo armazenada na single_assignment de mensagens do bloco.

Métodos protegidos

Nome

Descrição

Método de single_assignment::accept_message

Aceita uma mensagem que foi oferecida por esse single_assignment mensagens de bloco, retornando uma cópia da mensagem para o chamador.

Método de single_assignment::consume_message

Consome uma mensagem anteriormente oferecida pelo single_assignment e reservado pelo destino, retornando uma cópia da mensagem para o chamador.

Método de single_assignment::link_target_notification

Um retorno de chamada que notifica que um novo destino tenha sido vinculado a esta single_assignment mensagens bloco.

Método de single_assignment::propagate_message

Assincronamente transmite uma mensagem de um ISource a este bloco de single_assignment mensagens bloco. Ele é chamado pela propagate método, quando chamado por um bloco de código-fonte.

Método de single_assignment::propagate_to_any_targets

Locais de message_PMessage neste single_assignment Bloco de mensagens e oferecê-la a todos os destinos vinculado.

Método de single_assignment::release_message

Libera uma reserva de mensagem anterior. (Substitui source_block::release_message.)

Método de single_assignment::reserve_message

Reserva uma mensagem anteriormente oferecida por esse single_assignment mensagens bloco. (Substitui source_block::reserve_message.)

Método de single_assignment::resume_propagation

Reinicia a propagação após uma reserva foi lançada. (Substitui source_block::resume_propagation.)

Método de single_assignment::send_message

Passa de forma síncrona uma mensagem de um ISource a este bloco de single_assignment mensagens bloco. Ele é chamado pela send método, quando chamado por um bloco de código-fonte.

Comentários

A single_assignment Bloco de mensagens propaga cópias de sua mensagem para cada destino.

Para obter mais informações, consulte Blocos de mensagens assíncronas.

Hierarquia de herança

Podem ser

source_block

ITarget

propagator_block

single_assignment

Requisitos

Cabeçalho: Agents.h

Namespace: Simultaneidade

Consulte também

Referência

Namespace de simultaneidade

overwrite_buffer classe

Classe de unbounded_buffer