Classe choice

Un blocco della messaggistica choice è un blocco multi-origine a destinazione singola che rappresenta un'interazione del flusso di controllo con un set di origini. Il blocco di prima qualità attenderà che una qualsiasi delle molteplici origini produca un messaggio e propagherà l'indice dell'origine che ha prodotto il messaggio.

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

Parametri

  • _Type
    Tipo basato su tuple che rappresenta i payload delle origini di input.

Membri

Typedef pubblici

Nome

Oggetto di descrizione

type

Tipo alias per _Type.

Costruttori pubblici

Nome

Oggetto di descrizione

Costruttore choice::choice

Metodo di overload. Costruisce un blocco della messaggistica choice.

Distruttore choice::~choice

Distrugge il blocco della messaggistica choice.

Metodi pubblici

Nome

Oggetto di descrizione

Metodo choice::accept

Accetta un messaggio offerto dal blocco choice, trasferendo la proprietà al chiamante.

Metodo choice::acquire_ref

Acquisisce un conteggio dei riferimenti su questo blocco della messaggistica choice, per impedire eliminazione.

Metodo choice::consume

Utilizza un messaggio precedentemente offerto da questo blocco di messaggistica choice e correttamente riservato dalla destinazione trasferendo la proprietà al chiamante.

Metodo choice::has_value

Controlla se questo blocco della messaggistica choice è già stato inizializzato con un valore.

Metodo choice::index

Consente di restituire un indice nel tuple che rappresenta l'elemento selezionato dal blocco della messaggistica choice.

Metodo choice::link_target

Connette un blocco di destinazione al blocco della messaggistica choice.

Metodo choice::release

Consente di rilasciare una prenotazione corretta del messaggio precedente.

Metodo choice::release_ref

Consente di rilasciare un conteggio dei riferimenti su tale blocco della messaggistica choice.

Metodo choice::reserve

Consente di riservare un messaggio messo a disposizione in precedenza da tale blocco della messaggistica choice.

Metodo choice::unlink_target

Consente di scollegare un blocco di destinazione dal blocco della messaggistica choice.

Metodo choice::unlink_targets

Consente di scollegare tutte le destinazioni dal blocco della messaggistica choice. (Esegue l'override di ISource::unlink_targets.)

Metodo choice::value

Ottiene il messaggio il cui indice è stato selezionato dal blocco della messaggistica choice.

Note

Il blocco di prima qualità garantisce l'utilizzo di uno solo dei messaggi in arrivo.

Per ulteriori informazioni, vedere Blocchi dei messaggi asincroni.

Gerarchia di ereditarietà

ISource

choice

Requisiti

Header: agents.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Spazio dei nomi Concurrency

Classe join

Classe single_assignment

Funzione make_choice

tuple Class