ITarget — Klasa

Klasa ITarget jest interfejsem dla wszystkich bloków docelowych. Bloki docelowe używają komunikatów oferowanych im przez ISource bloki.

Składnia

template<class T>
class ITarget;

Parametry

T
Typ danych ładunku w komunikatach akceptowanych przez blok docelowy.

Członkowie

Definicje typów publicznych

Nazwa/nazwisko opis
filter_method Podpis dowolnej metody używanej przez blok, który zwraca bool wartość w celu określenia, czy proponowany komunikat powinien zostać zaakceptowany.
type Alias typu dla elementu T.

Konstruktory publiczne

Nazwa/nazwisko opis
~ITarget Destruktor ITarget Niszczy obiekt.

Metody publiczne

Nazwa/nazwisko opis
Propagowanie Po zastąpieniu w klasie pochodnej asynchronicznie przekazuje komunikat z bloku źródłowego do tego bloku docelowego.
Wyślij Po zastąpieniu w klasie pochodnej synchronicznie przekazuje komunikat do bloku docelowego.
supports_anonymous_source Po zastąpieniu w klasie pochodnej zwraca wartość true lub false w zależności od tego, czy blok komunikatów akceptuje komunikaty oferowane przez źródło, które nie jest z nim połączone. Jeśli metoda przesłonięta zwraca truewartość , element docelowy nie może odroczyć oferowanego komunikatu, ponieważ użycie odroczonego komunikatu w późniejszym czasie wymaga zidentyfikowania źródła w rejestrze linków źródłowych.

Metody chronione

Nazwa/nazwisko opis
link_source Po zastąpieniu w klasie pochodnej łączy określony blok źródłowy z tym ITarget blokiem.
unlink_source Po przesłonięciu w klasie pochodnej odłącza określony blok źródłowy od tego ITarget bloku.
unlink_sources Po zastąpieniu w klasie pochodnej odłącz wszystkie bloki źródłowe z tego ITarget bloku.

Uwagi

Aby uzyskać więcej informacji, zobacz Asynchroniczne bloki komunikatów.

Hierarchia dziedziczenia

ITarget

Wymagania

Nagłówek: agents.h

Przestrzeń nazw: współbieżność

~Itarget

ITarget Niszczy obiekt.

virtual ~ITarget();

Po zastąpieniu w klasie pochodnej łączy określony blok źródłowy z tym ITarget blokiem.

virtual void link_source(_Inout_ ISource<T>* _PSource) = 0;

Parametry

_PSource
Blok ISource jest połączony z tym ITarget blokiem.

Uwagi

Ta funkcja nie powinna być wywoływana ITarget bezpośrednio w bloku. Bloki powinny być połączone ze sobą przy użyciu link_target metody w ISource blokach, która wywoła metodę link_source w odpowiednim obiekcie docelowym.

Propagowanie

Po zastąpieniu w klasie pochodnej asynchronicznie przekazuje komunikat z bloku źródłowego do tego bloku docelowego.

virtual message_status propagate(
    _Inout_opt_ message<T>* _PMessage,
    _Inout_opt_ ISource<T>* _PSource) = 0;

Parametry

_PMessage
Wskaźnik do message obiektu.

_PSource
Wskaźnik do bloku źródłowego oferującego komunikat.

Wartość zwracana

Message_status wskazanie, co cel postanowił zrobić z komunikatem.

Uwagi

Metoda zgłasza wyjątek invalid_argument, jeśli _PMessage parametr lub _PSource ma wartość NULL .

Wyślij

Po zastąpieniu w klasie pochodnej synchronicznie przekazuje komunikat do bloku docelowego.

virtual message_status send(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource) = 0;

Parametry

_PMessage
Wskaźnik do message obiektu.

_PSource
Wskaźnik do bloku źródłowego oferującego komunikat.

Wartość zwracana

Message_status wskazanie, co cel postanowił zrobić z komunikatem.

Uwagi

Metoda zgłasza wyjątek invalid_argument, jeśli _PMessage parametr lub _PSource ma wartość NULL .

send Użycie metody poza inicjowaniem komunikatów i propagowanie komunikatów w sieci jest niebezpieczne i może prowadzić do zakleszczenia.

Po send powrocie komunikat został już zaakceptowany i przeniesiony do bloku docelowego lub został odrzucony przez element docelowy.

supports_anonymous_source

Po zastąpieniu w klasie pochodnej zwraca wartość true lub false w zależności od tego, czy blok komunikatów akceptuje komunikaty oferowane przez źródło, które nie jest z nim połączone. Jeśli metoda przesłonięta zwraca truewartość , element docelowy nie może odroczyć oferowanego komunikatu, ponieważ użycie odroczonego komunikatu w późniejszym czasie wymaga zidentyfikowania źródła w rejestrze linków kwaśnych.

virtual bool supports_anonymous_source();

Wartość zwracana

true jeśli blok może akceptować komunikat ze źródła, które nie jest z nim false połączone.

Po przesłonięciu w klasie pochodnej odłącza określony blok źródłowy od tego ITarget bloku.

virtual void unlink_source(_Inout_ ISource<T>* _PSource) = 0;

Parametry

_PSource
Blok ISource jest odłączony od tego ITarget bloku.

Uwagi

Ta funkcja nie powinna być wywoływana ITarget bezpośrednio w bloku. Bloki powinny być rozłączone przy użyciu unlink_target metod or unlink_targets w ISource blokach, które będą wywoływać metodę unlink_source w odpowiednim obiekcie docelowym.

Po zastąpieniu w klasie pochodnej odłącz wszystkie bloki źródłowe z tego ITarget bloku.

virtual void unlink_sources() = 0;

Zobacz też

Przestrzeń nazw współbieżności
ISource, klasa