ITarget – třída

Třída ITarget je rozhraní pro všechny cílové bloky. Cílové bloky zpracovávají zprávy nabízené bloky ISource.

Syntaxe

template<class T>
class ITarget;

Parametry

T
Typ dat zátěže ve zprávách přijatých cílovým blokem.

Členové

Veřejné typové definice

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řesměrování v odvozené třídě asynchronně předává zprávu ze zdrojového bloku do cílového bloku.
poslat Při přepsání v odvozené třídě synchronně předá zprávu cílovému bloku.
podporuje_anonymní_zdroj 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 přepsaná metoda vrátí true, cílový objekt 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 Když je přepsána v odvozené třídě, propojuje zadaný zdrojový blok s tímto ITarget blokem.
unlink_source Při přepsání v odvozené třídě zruší propojení zadaného zdrojového bloku z tohoto ITarget bloku.
odpojit_zdroje 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ě propojí tento ITarget blok se zadaným zdrojovým blokem.

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 blok. 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řesměrování v odvozené třídě asynchronně předává zprávu ze zdrojového bloku do 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 indikace toho, co se cíl rozhodl udělat se zprávou.

Poznámky

Metoda vyvolá výjimku invalid_argument, pokud je parametr _PMessage nebo _PSourceNULL.

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.

Návratová hodnota

Message_status indikace toho, co se cíl rozhodl udělat se zprávou.

Poznámky

Metoda vyvolá výjimku invalid_argument, pokud je parametr _PMessage nebo _PSourceNULL.

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.

podporuje_anonymní_zdroj

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 přepsaná metoda 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 zdrojového propojení.

virtual bool supports_anonymous_source();

Návratová hodnota

true pokud blok může přijmout zprávu ze zdroje, který není spárován s ním false v opačném případě.

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 se odpojuje od tohoto ITarget bloku.

Poznámky

Tato funkce by neměla být volána přímo na ITarget bloku. Bloky by měly být odpojeny pomocí metod unlink_target nebo unlink_targets na blocích ISource, což vyvolá metodu unlink_source na odpovídajícím cíli.

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ů
třída ISource