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á para 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 das fontes de entrada.
Membros
Typedefs pública
Nome |
Descrição |
---|---|
type |
Um alias de tipo para _Type. |
Construtores públicos
Nome |
Descrição |
---|---|
Sobrecarregado.Constrói um choice bloco de mensagens. |
|
Destrói a choice bloco de mensagens. |
Métodos públicos
Nome |
Descrição |
---|---|
Aceita uma mensagem que foi oferecida por esse choice bloco de transferência de propriedade para o chamador. |
|
Adquire uma contagem de referência sobre isso choice bloco de mensagens, para evitar a exclusão. |
|
Consome uma mensagem anteriormente oferecida por esse choice bloco de mensagens e reservado com êxito pelo destino, transferência de propriedade para o chamador. |
|
Verifica se esse choice bloco de mensagens foi inicializado com um valor ainda. |
|
Retorna um índice para o tuple que representa o elemento selecionado pelo choice bloco de mensagens. |
|
Vincula um bloco de destino para esta choice bloco de mensagens. |
|
Libera uma reserva de mensagem de sucesso anterior. |
|
Libera uma contagem de referência sobre isso choice bloco de mensagens. |
|
Reserva uma mensagem anteriormente oferecida por esse choice bloco de mensagens. |
|
Desvincula um bloco de destino desta choice bloco de mensagens. |
|
Desvincula todos os destinos desta choice bloco de mensagens.(Substitui ISource::unlink_targets.) |
|
Obtém a mensagem cujo índice foi selecionado pelo choice bloco de mensagens. |
Comentários
O bloco de opção garante que apenas uma das mensagens de entrada é consumida.
Para mais informações, consulte Blocos assíncronas de mensagem.
Hierarquia de herança
choice
Requisitos
Cabeçalho: agents.h
Namespace: concorrência