Share via


source_block-Klasse

Die source_block-Klasse ist eine abstrakte Basisklasse ausschließlich für Quellblöcke. Die Klasse stellt grundlegende Linkmanagementfunktionalität sowie allgemeine Fehlerüberprüfungen bereit.

template<
   class _TargetLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;

Parameter

  • _TargetLinkRegistry
    Linkregistrierung, die zum Speichern der Ziellinks verwendet werden soll.

  • _MessageProcessorType
    Prozessortyp zur Meldungsverarbeitung.

Member

Öffentliche Typedefs

Name

Beschreibungen

target_iterator

Der Iterator zum Durchlaufen der verbundenen Ziele.

Öffentliche Konstruktoren

Name

Beschreibungen

source_block::source_block-Konstruktor

Erstellt ein source_block-Objekt.

source_block::~source_block-Destruktor

Zerstört das source_block-Objekt.

Öffentliche Methoden

Name

Beschreibungen

source_block::accept-Methode

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

source_block::acquire_ref-Methode

Ruft eine Verweisanzahl für dieses source_block-Objekt ab, um das Löschen zu verhindern.

source_block::consume-Methode

Nimmt eine Meldung an, die zuvor von diesem source_block-Objekt angeboten und vom Ziel erfolgreich reserviert wurde, und überträgt den Besitz an den Aufrufer.

source_block::link_target-Methode

Verknüpft einen Zielblock mit diesem source_block-Objekt.

source_block::release-Methode

Gibt die Reservierung einer vorherigen erfolgreichen Meldung frei.

source_block::release_ref-Methode

Gibt auf diesem source_block-Objekt einen Verweiszähler frei.

source_block::reserve-Methode

Reserviert eine Meldung, die zuvor von diesem source_block-Objekt angeboten wurde.

source_block::unlink_target-Methode

Hebt die Verknüpfung eines Zielblocks mit diesem source_block-Objekt auf.

source_block::unlink_targets-Methode

Hebt die Verknüpfung aller Zielblöcke mit diesem source_block-Objekt auf. (Überschreibt ISource::unlink_targets.)

Geschützte Methoden

Name

Beschreibungen

source_block::accept_message-Methode

Akzeptiert beim Überschreiben in einer abgeleiteten Klasse eine von der Quelle akzeptierte Meldung. Meldungsblöcke sollten diese Methode überschreiben, um _MsgId zu überprüfen und eine Meldung zurückzugeben.

source_block::async_send-Methode

Stellt asynchron Meldungen in die Warteschlange ein und startet eine Weiterleitungsaufgabe, wenn dies nicht bereits geschehen ist.

source_block::consume_message-Methode

Verwendet beim Überschreiben in einer abgeleiteten Klasse eine Meldung, die zuvor reserviert wurde.

source_block::initialize_source-Methode

Initialisiert message_propagator in diesem source_block.

source_block::link_target_notification-Methode

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

source_block::propagate_to_any_targets-Methode

Gibt beim Überschreiben in einer abgeleiteten Klasse die angegebene Meldung an ein oder alle verknüpfte Ziele weiter. Dies ist die Hauptweitergaberoutine für Meldungsblöcke.

source_block::release_message-Methode

Gibt beim Überschreiben in einer abgeleiteten Klasse eine frühere Meldungsreservierung frei.

source_block::remove_targets-Methode

Entfernt alle Ziellinks für diesen Quellblock. Dies sollte vom Destruktor aufgerufen werden.

source_block::reserve_message-Methode

Reserviert beim Überschreiben in einer abgeleiteten Klasse eine Meldung, die von diesem source_block-Objekt angeboten wurde.

source_block::resume_propagation-Methode

Setzt beim Überschreiben in einer abgeleiteten Klasse die Weiterleitung nach der Freigabe einer Reservierung fort.

source_block::sync_send-Methode

Stellt synchron Meldungen in die Warteschlange ein und startet eine Weiterleitungsaufgabe, wenn dies nicht bereits geschehen ist.

source_block::unlink_target_notification-Methode

Ein Rückruf, der meldet, dass eine Zielverknüpfung von diesem source_block-Objekt entfernt wurde.

source_block::wait_for_outstanding_async_sends-Methode

Wartet, bis alle asynchrone Weitergaben abgeschlossen sind. Dieser weiterleitungsspezifischer Spin-Wait wird in Destruktoren von Meldungsblöcken verwendet, um sicherzustellen, dass alle asynchronen Weiterleitungen genügend Zeit zum Beenden erhalten, bevor der Block zerstört wird.

Hinweise

Meldungsblöcke sollten von diesem Block abgeleitet werden, um das Linkmanagement und die Synchronisierung nutzen zu können, die von dieser Klasse bereitgestellt werden.

Vererbungshierarchie

ISource

source_block

Anforderungen

Header: agents.h

Namespace: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

ISource-Klasse