Compartilhar via


Classe single_assignment

Um bloco da mensagem de single_assignment é uma para mais idiomas de destino, várias origem, propagator_block ordenado capaz de armazenar um único para gravação, uma vez que 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 do armazenada e propagada pelo buffer.

Membros

Construtores Públicos

Nome

Descrição

Construtor single_assignment::single_assignment

Sobrecarregado. Constrói um bloco da mensagem de single_assignment .

Destruidor single_assignment::~single_assignment

Destrói o bloco da mensagem de single_assignment .

Métodos Públicos

Nome

Descrição

Método single_assignment::has_value

Verifica se este bloco da mensagem de single_assignment foi inicializado com um valor ainda.

Método single_assignment::value

Obtém uma referência à carga atual da mensagem que está sendo armazenada no bloco da mensagem de single_assignment .

Métodos Protegidos

Nome

Descrição

Método single_assignment::accept_message

Aceita uma mensagem que é oferecida por esse bloco da mensagem de single_assignment , retornando uma cópia da mensagem ao chamador.

Método single_assignment::consume_message

Consome uma mensagem anteriormente oferecida por single_assignment e reservada pelo destino, retornando uma cópia da mensagem ao chamador.

Método single_assignment::link_target_notification

Um retorno de chamada que notifica que um novo destino esteve vinculado a esse bloco da mensagem de single_assignment .

Método single_assignment::propagate_message

Passa de forma assíncrona uma mensagem de um bloco de ISource a esse bloco da mensagem de single_assignment . É invocado pelo método de propagate , quando chamado por um bloco de origem.

Método single_assignment::propagate_to_any_targets

Coloca message_PMessage do bloco da mensagem de single_assignment e oferece-o em todos os destinos vinculados.

Método single_assignment::release_message

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

Método single_assignment::reserve_message

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

Método single_assignment::resume_propagation

Propagação de resumos depois que uma reserva foi liberada. (Substitui source_block::resume_propagation.)

Método single_assignment::send_message

Passa de forma síncrona uma mensagem de um bloco de ISource a esse bloco da mensagem de single_assignment . É invocado pelo método de send , quando chamado por um bloco de origem.

Comentários

Um bloco da mensagem de single_assignment propaga out cópias da mensagem a cada destino.

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

Hierarquia de Herança

ISource

ITarget

source_block

propagator_block

single_assignment

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe overwrite_buffer

Classe unbounded_buffer