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

join::join-Konstruktor

Überladen. Erstellt einen join-Meldungsblock.

join::~join-Destruktor

Zerstört den join-Block.

Geschützte Methoden

Name

Beschreibungen

join::accept_message-Methode

Akzeptiert eine Meldung, die von diesem join-Meldungsblock angeboten wurde, und überträgt den Besitz an den Aufrufer.

join::consume_message-Methode

Nimmt eine Meldung an, die zuvor vom join-Meldungsblock angeboten und vom Ziel reserviert wurde, und überträgt den Besitz an den Aufrufer.

join::link_target_notification-Methode

Ein Rückruf, der meldet, dass ein neues Ziel mit diesem join-Meldungsblock verknüpft wurde.

join::propagate_message-Methode

Übergibt eine Meldung asynchron von einem ISource-Block an diesen join-Meldungsblock. Wird bei Aufruf durch einen Quellblock von der propagate-Methode aufgerufen.

join::propagate_to_any_targets-Methode

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.

join::release_message-Methode

Gibt die Reservierung einer vorherigen Meldung frei. (Überschreibt source_block::release_message.)

join::reserve_message-Methode

Reserviert eine Meldung, die zuvor von diesem join-Meldungsblock angeboten wurde. (Überschreibt source_block::reserve_message.)

join::resume_propagation-Methode

Setzt die Weitergabe fort, nachdem eine Reservierung freigegeben wurde. (Überschreibt source_block::resume_propagation.)

Hinweise

Weitere Informationen finden Sie unter Asynchrone Nachrichtenblöcke.

Vererbungshierarchie

ISource

source_block

ITarget

propagator_block

join

Anforderungen

Header: agents.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

choice-Klasse

multitype_join-Klasse

join_type-Enumeration