Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 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();
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 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.
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;