Compartilhar via


Classe join

Um bloco da mensagem de join é um único destino, a várias origem, propagator_block ordenado que combina junto mensagens do tipo _Type de cada uma de suas fontes.

template<
   class _Type,
   join_type _Jtype = non_greedy
>
class join : public propagator_block<single_link_registry<ITarget<std::vector<_Type>>>, multi_link_registry<ISource<_Type>>>;

Parâmetros

  • _Type
    O tipo de carga útil das mensagens adicionadas e propagadas pelo bloco.

  • _Jtype
    O tipo do bloco de join isto é, greedy ou non_greedy

Membros

Construtores Públicos

Nome

Descrição

Construtor join::join

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

Destruidor join::~join

Destrói o bloco de join .

Métodos Protegidos

Nome

Descrição

Método join::accept_message

Aceita uma mensagem que é oferecida por esse bloco da mensagem de join , transferindo propriedade ao chamador.

Método join::consume_message

Consome uma mensagem anteriormente oferecida pelo bloco da mensagem de join e reservada pelo destino, transferindo propriedade ao chamador.

Método join::link_target_notification

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

Método join::propagate_message

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

Método join::propagate_to_any_targets

Constrói uma mensagem de saída que contém uma mensagem de entrada de cada origem quando todos tenham se propagado uma mensagem. Envia essa mensagem de saída para cada um de seus destinos.

Método join::release_message

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

Método join::reserve_message

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

Método join::resume_propagation

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

Comentários

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

Hierarquia de Herança

ISource

ITarget

source_block

propagator_block

join

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe choice

Classe multitype_join

Enumeração join_type