ITarget – třída
Třída ITarget
je rozhraní pro všechny cílové bloky. Cílové bloky využívají zprávy nabízené bloky ISource
.
Syntaxe
template<class T>
class ITarget;
Parametry
T
Datový typ datové části v rámci zpráv přijatých cílovým blokem.
Členové
Veřejné definice typedef
Název | Popis |
---|---|
filter_method |
Podpis jakékoli metody používané blokem, která vrací bool hodnotu k určení, zda má být nabízená zpráva přijata. |
type |
Alias typu pro T . |
Veřejné konstruktory
Název | Popis |
---|---|
~ITarget – destruktor | ITarget Zničí objekt. |
Veřejné metody
Název | Popis |
---|---|
propagovat | Při přepsání v odvozené třídě asynchronně předá zprávu ze zdrojového bloku do tohoto cílového bloku. |
poslat | Při přepsání v odvozené třídě synchronně předá zprávu cílovému bloku. |
supports_anonymous_source | Při přepsání v odvozené třídě vrátí hodnotu true nebo false v závislosti na tom, zda blok zprávy přijímá zprávy nabízené zdrojem, který není propojený s ním. Pokud metoda přepsání vrátí true , cíl nemůže odložit nabízenou zprávu, protože spotřeba odložené zprávy později vyžaduje, aby byl zdroj identifikován v registru zdrojového propojení. |
Chráněné metody
Název | Popis |
---|---|
link_source | Při přepsání v odvozené třídě odkazuje zadaný zdrojový blok na tento ITarget blok. |
unlink_source | Při přepsání v odvozené třídě zruší propojení zadaného zdrojového bloku z tohoto ITarget bloku. |
unlink_sources | Při přepsání v odvozené třídě zruší propojení všech zdrojových bloků z tohoto ITarget bloku. |
Poznámky
Další informace naleznete v tématu Asynchronní bloky zpráv.
Hierarchie dědičnosti
ITarget
Požadavky
Hlavička: agents.h
Namespace: souběžnost
~ITarget
ITarget
Zničí objekt.
virtual ~ITarget();
link_source
Při přepsání v odvozené třídě odkazuje zadaný zdrojový blok na tento ITarget
blok.
virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;
Parametry
_PSource
Blok ISource
, který je propojený s tímto ITarget
blokem.
Poznámky
Tato funkce by neměla být volána přímo na ITarget
bloku. Bloky by měly být propojeny pomocí link_target
metody na ISource
blocích, které vyvolá metodu link_source
pro odpovídající cíl.
propagovat
Při přepsání v odvozené třídě asynchronně předá zprávu ze zdrojového bloku do tohoto cílového bloku.
virtual message_status propagate(
_Inout_opt_ message<T>* _PMessage,
_Inout_opt_ ISource<T>* _PSource) = 0;
Parametry
_PMessage
Ukazatel na message
objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
Poznámky
Metoda vyvolá invalid_argument výjimku, pokud _PMessage
je NULL
parametr nebo _PSource
.
poslat
Při přepsání v odvozené třídě synchronně předá zprávu cílovému bloku.
virtual message_status send(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource) = 0;
Parametry
_PMessage
Ukazatel na message
objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
Poznámky
Metoda vyvolá invalid_argument výjimku, pokud _PMessage
je NULL
parametr nebo _PSource
.
send
Použití metody mimo inicializace zpráv a šíření zpráv v síti je nebezpečné a může vést k zablokování.
Když send
se vrátí, zpráva již byla přijata a přenesena do cílového bloku nebo byla odmítnuta cílem.
supports_anonymous_source
Při přepsání v odvozené třídě vrátí hodnotu true nebo false v závislosti na tom, zda blok zprávy přijímá zprávy nabízené zdrojem, který není propojený s ním. Pokud metoda přepsání vrátí true
, cíl nemůže odložit nabízenou zprávu, protože spotřeba odložené zprávy v pozdější době vyžaduje, aby byl zdroj identifikován v jeho registru sourse propojení.
virtual bool supports_anonymous_source();
Návratová hodnota
true
pokud blok může přijmout zprávu ze zdroje, který není propojen s ním false
jinak.
unlink_source
Při přepsání v odvozené třídě zruší propojení zadaného zdrojového bloku z tohoto ITarget
bloku.
virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;
Parametry
_PSource
Blok ISource
, který se od tohoto ITarget
bloku odpojí.
Poznámky
Tato funkce by neměla být volána přímo na ITarget
bloku. Bloky by měly být odpojeny pomocí unlink_target
metod unlink_targets
ISource
v blocích, které vyvolá metodu unlink_source
pro odpovídající cíl.
unlink_sources
Při přepsání v odvozené třídě zruší propojení všech zdrojových bloků z tohoto ITarget
bloku.
virtual void unlink_sources() = 0;