Share via


ITarget-klasse

De ITarget klasse is de interface voor alle doelblokken. Doelblokken verwerken berichten die door ISource blokken aan hen worden doorgegeven.

Syntaxis

template<class T>
class ITarget;

Parameterwaarden

T
Het gegevenstype van de payload binnen de berichten die door het doelblok worden geaccepteerd.

Leden

Openbare typedefs

Naam Description
filter_method De handtekening van een methode die wordt gebruikt door het blok dat een bool waarde retourneert om te bepalen of een aangeboden bericht moet worden geaccepteerd.
type Een typealias voor T.

Openbare constructors

Naam Description
~ITarget Destructor Vernietigt het ITarget object.

Openbare methoden

Naam Description
Propageren Wanneer deze in een afgeleide klasse wordt overschreven, wordt een bericht asynchroon van een bronblok naar dit doelblok doorgegeven.
Verzenden Wanneer deze wordt overschreven in een afgeleide klasse, wordt een bericht synchroon doorgegeven aan het doelblok.
ondersteunt_anonieme_bron Wanneer dit wordt overschreven in een afgeleide klasse, retourneert het true of false, afhankelijk van of het berichtblok berichten accepteert die worden aangeboden door een bron die er niet mee is verbonden. Als de overschreven methode true retourneert, kan de doelentiteit een aangeboden bericht niet uitstellen, omdat voor het verbruik van een uitgesteld bericht op een later tijdstip vereist is dat de bron wordt geïdentificeerd in het bronkoppelingsregister.

Beveiligde methoden

Naam Description
link_source Wanneer overschreven in een afgeleide klasse, koppelt een opgegeven bronblok aan dit ITarget blok.
unlink_source Wanneer overschreven in een afgeleide klasse, wordt een opgegeven bronblok ontkoppeld van dit ITarget blok.
unlink_sources Wanneer overschreven in een afgeleide klasse, worden alle bronblokken van dit ITarget-blok ontkoppeld.

Opmerkingen

Zie Asynchrone berichtblokken voor meer informatie.

Overnamehiërarchie

ITarget

Requirements

Header: agents.h

Naamruimte: concurrentie

~ITarget

Vernietigt het ITarget object.

virtual ~ITarget();

Bij overschrijving in een afgeleide klasse wordt een opgegeven bronblok aan dit ITarget blok gekoppeld.

virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;

Parameterwaarden

_PSource
Het ISource blok dat aan dit ITarget blok wordt gekoppeld.

Opmerkingen

Deze functie mag niet rechtstreeks op een ITarget blok worden aangeroepen. Blokken moeten worden verbonden met behulp van de link_target methode op ISource blokken, waarmee de link_source methode op het bijbehorende doel wordt aangeroepen.

Doorgeven

Wanneer deze functie in een afgeleide klasse wordt overschreven, wordt een bericht asynchroon van een bronblok naar dit doelblok doorgegeven.

virtual message_status propagate(
    _Inout_opt_ message<T>* _PMessage,
    _Inout_opt_ ISource<T>* _PSource) = 0;

Parameterwaarden

_PMessage
Een aanwijzer naar het message object.

_PSource
Een aanwijzer naar het bronblok dat het bericht aanbiedt.

Retourwaarde

Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.

Opmerkingen

De methode gooit een invalid_argument uitzondering indien de _PMessage of _PSource parameter NULL is.

Verzenden

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een bericht synchroon doorgegeven aan het doelblok.

virtual message_status send(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource) = 0;

Parameterwaarden

_PMessage
Een aanwijzer naar het message object.

_PSource
Een aanwijzer naar het bronblok dat het bericht aanbiedt.

Retourwaarde

Een message_status indicatie van wat het doel heeft besloten te doen met het bericht.

Opmerkingen

De methode gooit een invalid_argument uitzondering indien de _PMessage of _PSource parameter NULL is.

Het gebruik van de send methode buiten de initiatie van berichten en om berichten binnen een netwerk door te geven is gevaarlijk en kan leiden tot impasses.

Wanneer send terugkeert, is het bericht ofwel al geaccepteerd en overgebracht naar het doelblok, of het is geweigerd door het doel.

ondersteunt_anonieme_bron

Wanneer dit wordt overschreven in een afgeleide klasse, retourneert het true of false, afhankelijk van of het berichtblok berichten accepteert die worden aangeboden door een bron die er niet mee is verbonden. Als de overschreven methode true retourneert, kan het doel een aangeboden bericht niet uitstellen, omdat het verwerken van een uitgesteld bericht op een later tijdstip vereist dat de bron wordt geïdentificeerd in het sourcekoppelingsregister.

virtual bool supports_anonymous_source();

Retourwaarde

true als het blok een bericht kan accepteren van een bron die er niet mee verbonden is false anders.

Wanneer overschreven in een afgeleide klasse, wordt een opgegeven bronblok ontkoppeld van dit ITarget blok.

virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;

Parameterwaarden

_PSource
Het ISource blok wordt losgekoppeld van dit ITarget blok.

Opmerkingen

Deze functie mag niet rechtstreeks op een ITarget blok worden aangeroepen. Blokken moeten worden losgekoppeld met behulp van de unlink_target of unlink_targets methoden op ISource blokken, waarmee de unlink_source methode op het bijbehorende doel wordt aangeroepen.

Wanneer overschreven in een afgeleide klasse, worden alle bronblokken van dit ITarget-blok ontkoppeld.

virtual void unlink_sources() = 0;

Zie ook

concurrentie Namespace
ISource-klasse