Compartilhar via


Classe choice

Um bloco da mensagem de choice várias é uma origem, o bloco de um único destino que representa uma interação de fluxo de controle com um conjunto de fontes. O bloco bem escolhido aguardará qualquer de várias fontes para gerar uma mensagem e propagará o índice de origem que gerou a mensagem.

template<
   class _Type
>
class choice: public ISource<size_t>;

Parâmetros

  • _Type
    Um tipo com base em tuplede que representa as cargas de fontes de entrada.

Membros

Typedefs Públicas

Nome

Descrição

type

Um alias de tipo para _Type.

Construtores Públicos

Nome

Descrição

Construtor choice::choice

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

Destruidor choice::~choice

Destrói o bloco da mensagem de choice .

Métodos Públicos

Nome

Descrição

Método choice::accept

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

Método choice::acquire_ref

Adquire uma contagem de referência do bloco da mensagem de choice , para evitar a exclusão.

Método choice::consume

Consome uma mensagem oferecida anteriormente por esse bloco da mensagem de choice e reservada com êxito pelo destino, transferindo propriedade ao chamador.

Método choice::has_value

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

Método choice::index

Retorna um índice em tuple que representa o elemento selecionado pelo bloco da mensagem de choice .

Método choice::link_target

Vincula um bloco de destino a esse bloco da mensagem de choice .

Método choice::release

Libera uma reserva com êxito anterior da mensagem.

Método choice::release_ref

Libera uma contagem de referência do bloco da mensagem de choice .

Método choice::reserve

Reserva uma mensagem oferecida anteriormente por esse bloco da mensagem de choice .

Método choice::unlink_target

Unlinks um bloco de destino desse bloco da mensagem de choice .

Método choice::unlink_targets

Unlinks todos os destinos deste bloco da mensagem de choice . (Substitui ISource::unlink_targets.)

Método choice::value

Obtém a mensagem cujo índice foi selecionado pelo bloco da mensagem de choice .

Comentários

O bloco bem escolhido garante que apenas uma das mensagens de entrada seja consumido.

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

Hierarquia de Herança

ISource

choice

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe join

Classe single_assignment

Função make_choice

Classe tuple