join-Klasse
Ein join-Meldungsblock ist ein geordneter propagator_block mit mehreren Quellen und einem einzelnen Ziel, der Meldungen vom Typ _Type aus allen Quellen kombiniert.
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>>>;
Parameter
_Type
Der Nutzlasttyp der Meldungen, die vom Block zusammengeführt und weitergegeben wurden._Jtype
Die Art des join-Blocks, entweder greedy oder non_greedy.
Member
Öffentliche Konstruktoren
Name |
Beschreibungen |
---|---|
Überladen. Erstellt einen join-Meldungsblock. |
|
Zerstört den join-Block. |
Geschützte Methoden
Name |
Beschreibungen |
---|---|
Akzeptiert eine Meldung, die von diesem join-Meldungsblock angeboten wurde, und überträgt den Besitz an den Aufrufer. |
|
Nimmt eine Meldung an, die zuvor vom join-Meldungsblock angeboten und vom Ziel reserviert wurde, und überträgt den Besitz an den Aufrufer. |
|
Ein Rückruf, der meldet, dass ein neues Ziel mit diesem join-Meldungsblock verknüpft wurde. |
|
Übergibt eine Meldung asynchron von einem ISource-Block an diesen join-Meldungsblock. Wird bei Aufruf durch einen Quellblock von der propagate-Methode aufgerufen. |
|
Erstellt eine Ausgabemeldung, die eine Eingabemeldung von jeder Quelle enthält, wenn alle Quellen eine Meldung weitergegeben haben. Sendet diese Ausgabemeldung an jedes der Ziele. |
|
Gibt die Reservierung einer vorherigen Meldung frei. (Überschreibt source_block::release_message.) |
|
Reserviert eine Meldung, die zuvor von diesem join-Meldungsblock angeboten wurde. (Überschreibt source_block::reserve_message.) |
|
Setzt die Weitergabe fort, nachdem eine Reservierung freigegeben wurde. (Überschreibt source_block::resume_propagation.) |
Hinweise
Weitere Informationen finden Sie unter Asynchrone Nachrichtenblöcke.
Vererbungshierarchie
Anforderungen
Header: agents.h
Namespace: Concurrency