Sdílet prostřednictvím


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

Jméno 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

Jméno popis
~ITarget – destruktor ITarget Zničí objekt.

Veřejné metody

Jméno popis
Rozšířit Při přepsání v odvozené třídě asynchronně předá zprávu ze zdrojového bloku do tohoto cílového bloku.
Odeslat 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

Jméno 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

Obor názvů: souběžnost

~ITarget

ITarget Zničí objekt.

virtual ~ITarget();

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.

Rozšířit

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.

Vrácená 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 NULLparametr nebo _PSource .

Odeslat

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.

Vrácená 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 NULLparametr 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();

Vrácená hodnota

true pokud blok může přijmout zprávu ze zdroje, který není propojen s ním false jinak.

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_targetsISource v blocích, které vyvolá metodu unlink_source pro odpovídající cíl.

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;

Viz také

concurrency – obor názvů
ISource – třída