single_assignment-Klasse

Ein single_assignment-Meldungsblock ist ein geordneter propagator_block mit mehreren Zielen und mehreren Quellen, der eine einzelne, einmal beschreibbare message speichern kann.

template<
   class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Parameter

  • _Type
    Der Nutzlasttyp der Meldung, die vom Puffer gespeichert und weitergegeben wurde.

Member

Öffentliche Konstruktoren

Name

Beschreibungen

single_assignment::single_assignment-Konstruktor

Überladen. Erstellt einen single_assignment-Meldungsblock.

single_assignment::~single_assignment-Destruktor

Zerstört den single_assignment-Meldungsblock.

Öffentliche Methoden

Name

Beschreibungen

single_assignment::has_value-Methode

Überprüft, ob dieser single_assignment-Meldungsblock bereits mit einem Wert initialisiert wurde.

single_assignment::value-Methode

Ruft einen Verweis auf die aktuelle Nutzlast der Meldung ab, die im single_assignment-Meldungsblock gespeichert ist.

Geschützte Methoden

Name

Beschreibungen

single_assignment::accept_message-Methode

Akzeptiert eine Meldung, die von diesem single_assignment-Meldungsblock angeboten wurde, und gibt eine Kopie der Meldung an den Aufrufer zurück.

single_assignment::consume_message-Methode

Nimmt eine Meldung an, die zuvor von single_assignment angeboten und vom Ziel reserviert wurde, und gibt eine Kopie der Meldung an den Aufrufer zurück.

single_assignment::link_target_notification-Methode

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

single_assignment::propagate_message-Methode

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

single_assignment::propagate_to_any_targets-Methode

Fügt message_PMessage in diesen single_assignment-Meldungsblock ein und bietet sie allen verknüpften Zielen an.

single_assignment::release_message-Methode

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

single_assignment::reserve_message-Methode

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

single_assignment::resume_propagation-Methode

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

single_assignment::send_message-Methode

Übergibt eine Meldung synchron von einem ISource-Block an diesen single_assignment-Meldungsblock. Wird bei Aufruf durch einen Quellblock von der send-Methode aufgerufen.

Hinweise

Ein single_assignment-Meldungsblock gibt Kopien seiner Meldungen an jedes Ziel weiter.

Weitere Informationen finden Sie unter Asynchrone Nachrichtenblöcke.

Vererbungshierarchie

ISource

source_block

ITarget

propagator_block

single_assignment

Anforderungen

Header: agents.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

overwrite_buffer-Klasse

unbounded_buffer-Klasse