Classe de opção

A choice Bloco de mensagens é um bloco de várias fontes, o único destino que representa uma interação de fluxo de controle com um conjunto de fontes. O bloco de opção aguardará a qualquer uma das várias fontes para produzir uma mensagem e irá propagar o índice da fonte que produziu a mensagem.

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

Parâmetros

  • _Type
    A tuple-com base no tipo que representa as cargas de fontes de entrada.

Membros

Definições de tipo públicas

Nome

Descrição

type

Um alias de tipo para _Type.

Construtores públicos

Nome

Descrição

Construtor de Choice::Choice

Sobrecarregado. Constrói uma choice mensagens bloco.

Escolha:: ~ choice destruidor

Destrói a choice de mensagens do bloco.

Métodos públicos

Nome

Descrição

Método de Choice::accept

Aceita uma mensagem que foi oferecida por esse choice bloco, transferência de propriedade para o chamador.

Método de Choice::acquire_ref

Adquire uma contagem de referência sobre isso choice mensagens de bloco, para evitar a exclusão.

Método de Choice::consume

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

Método de Choice::has_value

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

Método de Choice::index

Retorna um índice para o tuple que representa o elemento selecionado pelo choice mensagens bloco.

Método de Choice::link_target

Isso vincula um bloco de destino choice mensagens bloco.

Método de Choice::Release

Libera uma reserva de mensagem bem-sucedida anterior.

Método de Choice::release_ref

Libera uma contagem de referência sobre isso choice mensagens bloco.

Método de Choice::reserve

Reserva uma mensagem anteriormente oferecida por esse choice mensagens bloco.

Método de Choice::unlink_target

Desvincula um bloco de destino a partir dessa choice mensagens bloco.

Método de Choice::unlink_targets

Desvincula todos os destinos a partir dessa choice mensagens bloco. (Substitui ISource::unlink_targets.)

Método de Choice::value

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

Comentários

O bloco de opção garante que apenas uma das mensagens de entrada é consumida.

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

Hierarquia de herança

Podem ser

Escolha

Requisitos

Cabeçalho: Agents.h

Namespace: Simultaneidade

Consulte também

Referência

Namespace de simultaneidade

Classe de associação

single_assignment classe

Função de make_choice

Classe de tupla