Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ITarget-Klasse ist die Schnittstelle für alle Zielblöcke. Zielblöcke empfangen die von ISource-Blöcken angebotenen Meldungen.
Syntax
template<class T>
class ITarget;
Parameter
T
Der Datentyp der Nutzlast innerhalb der vom Zielblock akzeptierten Nachrichten.
Mitglieder
Öffentliche Typedefs
| Name | Beschreibung |
|---|---|
filter_method |
Die Signatur einer beliebigen Methode, die vom Block verwendet wird, der einen bool Wert zurückgibt, um zu bestimmen, ob eine angebotene Nachricht akzeptiert werden soll. |
type |
Ein Typalias für T. |
Öffentliche Konstruktoren
| Name | Beschreibung |
|---|---|
| ~ITarget Destructor | Zerstört das ITarget-Objekt. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
| verbreiten | Wenn sie in einer abgeleiteten Klasse überschrieben wird, übergibt diese Methode asynchron eine Nachricht von einem Quellblock an diesen Zielblock. |
| Senden | Wenn eine abgeleitete Klasse überschrieben wird, wird eine Nachricht synchron an den Zielblock übergeben. |
| unterstützt_anonyme_Quelle | Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird "true" oder "false" zurückgegeben, je nachdem, ob der Nachrichtenblock Nachrichten akzeptiert, die von einer Quelle angeboten werden, die nicht mit ihm verbunden ist. Wenn die überschriebene Methode true zurückgibt, kann das Ziel eine angebotene Nachricht nicht verschieben, da der Verbrauch einer verschobenen Nachricht zu einem späteren Zeitpunkt erfordert, dass die Quelle in dessen Quelllink-Registrierung identifiziert wird. |
Geschützte Methoden
| Name | Beschreibung |
|---|---|
| link_source | Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird ein angegebener Quellblock mit diesem ITarget Block verknüpft. |
| unlink_source | Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird ein angegebener Quellblock von diesem ITarget Block entlinkt. |
| Quellen_trennen | Wenn sie in einer abgeleiteten Klasse überschrieben werden, heben Sie die Verknüpfung aller Quellblöcke von diesem ITarget Block auf. |
Hinweise
Weitere Informationen finden Sie unter "Asynchrone Nachrichtenblöcke".
Vererbungshierarchie
ITarget
Anforderungen
Header: agents.h
Namespace: Parallelität
~ITarget
Zerstört das ITarget-Objekt.
virtual ~ITarget();
Linkquelle
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird ein angegebener Quellblock mit diesem ITarget Block verknüpft.
virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Der ISource Block, der mit diesem ITarget Block verknüpft ist.
Hinweise
Diese Funktion sollte nicht direkt für einen ITarget Block aufgerufen werden. Blöcke sollten mithilfe der link_target Methode für ISource Blöcke miteinander verbunden werden, wodurch die link_source Methode für das entsprechende Ziel aufgerufen wird.
verbreiten
Wenn sie in einer abgeleiteten Klasse überschrieben wird, übergibt diese Methode asynchron eine Nachricht von einem Quellblock an diesen Zielblock.
virtual message_status propagate(
_Inout_opt_ message<T>* _PMessage,
_Inout_opt_ ISource<T>* _PSource) = 0;
Parameter
_PMessage
Ein Zeiger auf das message-Objekt.
_PSource
Ein Zeiger auf den Quellblock, der die Nachricht übermittelt.
Rückgabewert
Eine message_status-Angabe darüber, was das Ziel mit der Nachricht vorhat.
Hinweise
Die Methode löst eine invalid_argument aus, wenn entweder der _PMessage- oder der _PSource-Parameter NULL ist.
Senden
Wenn eine abgeleitete Klasse überschrieben wird, wird eine Nachricht synchron an den Zielblock übergeben.
virtual message_status send(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PMessage
Ein Zeiger auf das message-Objekt.
_PSource
Ein Zeiger auf den Quellblock, der die Nachricht übermittelt.
Rückgabewert
Eine message_status-Angabe darüber, was das Ziel mit der Nachricht vorhat.
Hinweise
Die Methode wirft eine invalid_argument Ausnahme, wenn entweder der _PMessage- oder _PSource-Parameter NULL ist.
Die Verwendung der send Methode außerhalb der Nachrichteninitiierung und zum Verteilen von Nachrichten innerhalb eines Netzwerks ist gefährlich und kann zu Deadlock führen.
Sobald send zurückkehrt, wurde die Nachricht entweder bereits akzeptiert und in den Zielblock übertragen, oder sie wurde vom Ziel abgelehnt.
supports_anonymous_source
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird "true" oder "false" zurückgegeben, je nachdem, ob der Nachrichtenblock Nachrichten akzeptiert, die von einer Quelle angeboten werden, die nicht mit ihm verbunden ist. Wenn die überschriebene Methode true zurückgibt, kann das Ziel eine angebotene Nachricht nicht verzögern, da die spätere Verarbeitung einer verzögerten Nachricht erfordert, dass die Quelle in ihrem Quellenverzeichnis identifiziert wird.
virtual bool supports_anonymous_source();
Rückgabewert
true wenn der Block Nachrichten von einer Quelle akzeptieren kann, die nicht mit dieser false verknüpft ist, andernfalls.
Quelle_entfernen
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird ein angegebener Quellblock von diesem ITarget Block entlinkt.
virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;
Parameter
_PSource
Der ISource Block wird von diesem ITarget Block getrennt.
Hinweise
Diese Funktion sollte nicht direkt für einen ITarget Block aufgerufen werden. Blöcke sollten unter Verwendung der unlink_target oder unlink_targets Methoden an ISource Blöcken getrennt werden, wodurch die unlink_source Methode auf das entsprechende Ziel aufgerufen wird.
Quellen_verknüpfung_aufheben
Wenn sie in einer abgeleiteten Klasse überschrieben werden, heben Sie die Verknüpfung aller Quellblöcke von diesem ITarget Block auf.
virtual void unlink_sources() = 0;