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 ISource klasse is de interface voor alle bronblokken. Bronblokken geven berichten door aan ITarget blokken.
Syntaxis
template<class T>
class ISource;
Parameterwaarden
T
Het gegevenstype van de payload binnen de berichten die door het bronblok worden geproduceerd.
Leden
Openbare typedefs
| Naam | Description |
|---|---|
source_type |
Een typealias voor T. |
Openbare constructors
| Naam | Description |
|---|---|
| ~ISource-destructor | Vernietigt het ISource object. |
Openbare methoden
| Naam | Description |
|---|---|
| accepteren | Wanneer deze wordt overschreven in een afgeleide klasse, accepteert een bericht dat door dit ISource blok is aangeboden, waarbij eigendom wordt overgedragen aan de aanroeper. |
| acquire_ref | Wanneer deze wordt overschreven in een afgeleide klasse, verkrijgt u een verwijzingsaantal op dit ISource blok om verwijdering te voorkomen. |
| verbruiken | Wanneer deze methode in een afgeleide klasse wordt overschreven, wordt een bericht dat eerder door dit ISource blok is aangeboden en succesvol door het doelwit is gereserveerd, geconsumeerd, waarbij het eigendom aan de oproeper wordt overgedragen. |
| link_target | Wanneer deze methode in een afgeleide klasse wordt overschreven, verbindt het een doelblok met dit ISource blok. |
| release | Wanneer deze wordt overschreven in een afgeleide klasse, wordt een eerdere succesvolle berichtreservering vrijgegeven. |
| release_ref | Wanneer deze wordt overschreven in een afgeleide klasse, wordt een verwijzingsaantal op dit ISource blok vrijgegeven. |
| Reserve | Wanneer overschreven in een afgeleide klasse, reserveert het een eerder aangeboden bericht door dit ISource blok. |
| doel ontkoppelen | Wanneer deze wordt overschreven in een afgeleide klasse, ontkoppelt u een doelblok van dit ISource blok als deze eerder is gekoppeld. |
| unlink_targets | Wanneer deze worden overschreven in een afgeleide klasse, ontkoppelt u alle doelblokken van dit ISource blok. |
Opmerkingen
Zie Asynchrone berichtblokken voor meer informatie.
Overnamehiƫrarchie
ISource
Requirements
Header: agents.h
Naamruimte: concurrentie
accepteren
Wanneer deze in een afgeleide klasse wordt overschreven, accepteert het een bericht dat door dit ISource blok is aangeboden, waarbij het beheer wordt overgedragen aan de aanroepende instantie.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_MsgId
Het runtime_object_identity van het aangeboden message object.
_PTarget
Een aanwijzer naar het doelblok dat de accept methode aanroept.
Retourwaarde
Een aanwijzer naar het bericht waarvan de beller nu eigenaar is.
Opmerkingen
De accept methode wordt aangeroepen door een doel terwijl een bericht wordt aangeboden door dit ISource blok. De geretourneerde berichtpointer kan afwijken van de aanwijzer die is doorgegeven aan de propagate methode van het ITarget blok, als deze bron besluit een kopie van het bericht te maken.
acquire_ref
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een referentietelling verkregen voor dit ISource blok om verwijdering te voorkomen.
virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_PTarget
Een aanwijzer naar het doelblok dat deze methode aanroept.
Opmerkingen
Deze methode wordt aangeroepen door een ITarget object dat tijdens de link_target methode aan deze bron wordt gekoppeld.
Verbruiken
Wanneer deze in een afgeleide klasse wordt overschreven, verbruikt u een bericht dat eerder door dit ISource blok is aangeboden en succesvol gereserveerd door het doel, waarbij het eigendom wordt overgedragen aan de beller.
virtual message<T>* consume(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_MsgId
Het runtime_object_identity van het gereserveerde message-object.
_PTarget
Een aanwijzer naar het doelblok dat de consume methode aanroept.
Retourwaarde
Een aanwijzer naar het message object waarvan de aanroeper nu eigenaar is.
Opmerkingen
De consume methode is vergelijkbaar met accept, maar moet altijd worden voorafgegaan door een aanroep van reserve die true retourneerde.
~ISource
Vernietigt het ISource object.
virtual ~ISource();
link_target
Wanneer deze methode in een afgeleide klasse wordt overschreven, verbindt het een doelblok met dit ISource blok.
virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_PTarget
Een aanwijzer naar het doelblok dat aan dit ISource blok wordt gekoppeld.
vrijgave
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een eerdere succesvolle berichtreservering vrijgegeven.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_MsgId
Het runtime_object_identity van het gereserveerde message-object.
_PTarget
Een aanwijzer naar het doelblok dat de release methode aanroept.
release_ref
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een verwijzingsaantal op dit ISource blok vrijgegeven.
virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_PTarget
Een aanwijzer naar het doelblok dat deze methode aanroept.
Opmerkingen
Deze methode wordt aangeroepen door een ITarget object dat niet is gekoppeld vanuit deze bron. Het bronblok mag alle resources vrijgeven die zijn gereserveerd voor het doelblok.
reserve
Wanneer overschreven in een afgeleide klasse, reserveert het een eerder aangeboden bericht door dit ISource blok.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_MsgId
Het runtime_object_identity van het aangeboden message object.
_PTarget
Een aanwijzer naar het doelblok dat de reserve methode aanroept.
Retourwaarde
true als het bericht succesvol is gereserveerd, false anders. Reserveringen kunnen om verschillende redenen mislukken, waaronder: het bericht is al gereserveerd of geaccepteerd door een ander doel, de bron kan reserveringen weigeren, enzovoort.
Opmerkingen
Nadat u hebt gebeld reserve, moet u, als het lukt, bellen consume of release om respectievelijk het bericht in te nemen of op te geven.
unlink_target
Wanneer deze wordt overschreven in een afgeleide klasse, ontkoppelt u een doelblok van dit ISource blok als deze eerder is gekoppeld.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parameterwaarden
_PTarget
Een aanwijzer naar het doelblok dat vanuit dit ISource blok wordt ontkoppeld.
ontkoppel_doelen
Wanneer deze worden overschreven in een afgeleide klasse, ontkoppelt u alle doelblokken van dit ISource blok.
virtual void unlink_targets() = 0;