Classe join
Un blocco della messaggistica join è un propagator_block multi-origine, a destinazione singola, che combina insieme messaggi di tipo _Type da ognuna delle origini.
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>>>;
Parametri
_Type
Tipo di payload dei messaggi uniti e propagati dal blocco._Jtype
Il tipo di blocco join è greedy o non_greedy
Membri
Costruttori pubblici
Nome |
Oggetto di descrizione |
---|---|
Metodo di overload. Costruisce un blocco della messaggistica join. |
|
Elimina il blocco join. |
Metodi protetti
Nome |
Oggetto di descrizione |
---|---|
Accetta un messaggio offerto dal blocco di messaggistica join, trasferendo la proprietà al chiamante. |
|
Utilizza un messaggio precedentemente offerto dal blocco di messaggistica join e riservato dalla destinazione trasferendo la proprietà al chiamante. |
|
Un callback che notifica che una nuova destinazione è stata collegata a questo blocco della messaggistica join. |
|
Consente di passare in modo asincrono un messaggio da un blocco ISource a quello della messaggistica join. Viene richiamato dal metodo propagate se chiamato da un blocco di origine. |
|
Costruisce un messaggio di output che contiene un messaggio di input da ogni origine quando tutti hanno propagato un messaggio. Consente di inviare tale messaggio di output a ciascuna delle sue destinazioni. |
|
Consente di rilasciare una prenotazione del messaggio precedente. (Consente di eseguire l'override di source_block::release_message.) |
|
Consente di riservare un messaggio messo a disposizione in precedenza da tale blocco della messaggistica join. (Consente di eseguire l'override source_block::reserve_message.) |
|
Consente di riprendere una propagazione dopo il rilascio di una prenotazione. (Consente di eseguire l'override source_block::resume_propagation.) |
Note
Per ulteriori informazioni, vedere Blocchi dei messaggi asincroni.
Gerarchia di ereditarietà
Requisiti
Header: agents.h
Spazio dei nomi: Concurrency