Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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();
link_source
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.
unlink_bron
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.
bronnen_ontkoppelen
Wanneer overschreven in een afgeleide klasse, worden alle bronblokken van dit ITarget-blok ontkoppeld.
virtual void unlink_sources() = 0;