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.
Elementy członkowskie
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 true wartość , 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();
link_source
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 true
wartość , 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.
unlink_source
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.
unlink_sources
Po zastąpieniu w klasie pochodnej odłącz wszystkie bloki źródłowe z tego ITarget
bloku.
virtual void unlink_sources() = 0;