ISource — Klasa
Klasa ISource
jest interfejsem dla wszystkich bloków źródłowych. Bloki źródłowe propagują komunikaty do ITarget
bloków.
Składnia
template<class T>
class ISource;
Parametry
T
Typ danych ładunku w komunikatach generowanych przez blok źródłowy.
Elementy członkowskie
Definicje typów publicznych
Nazwa/nazwisko | opis |
---|---|
source_type |
Alias typu dla elementu T . |
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
~ISource, destruktor | ISource Niszczy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
akceptować | Gdy przesłonięta w klasie pochodnej, akceptuje komunikat oferowany przez ten ISource blok, przenosząc własność do obiektu wywołującego. |
acquire_ref | Po zastąpieniu w klasie pochodnej uzyskuje liczbę odwołań dla tego ISource bloku, aby zapobiec usunięciu. |
konsumować | Gdy przesłonięta w klasie pochodnej, używa komunikatu oferowanego wcześniej przez ten ISource blok i pomyślnie zarezerwowanego przez obiekt docelowy, przenosząc własność do obiektu wywołującego. |
link_target | Po zastąpieniu w klasie pochodnej łączy blok docelowy z tym ISource blokiem. |
zwolnić | Po zastąpieniu w klasie pochodnej zwalnia poprzednią pomyślną rezerwację komunikatów. |
release_ref | Po zastąpieniu w klasie pochodnej zwalnia liczbę odwołań dla tego ISource bloku. |
rezerwować | Po zastąpieniu w klasie pochodnej rezerwuje komunikat wcześniej oferowany przez ten ISource blok. |
unlink_target | Po zastąpieniu w klasie pochodnej odłącza blok docelowy od tego ISource bloku, jeśli zostanie znaleziony wcześniej połączony. |
unlink_targets | Po zastąpieniu w klasie pochodnej odłącz wszystkie bloki docelowe z tego ISource bloku. |
Uwagi
Aby uzyskać więcej informacji, zobacz Asynchroniczne bloki komunikatów.
Hierarchia dziedziczenia
ISource
Wymagania
Nagłówek: agents.h
Przestrzeń nazw: współbieżność
akceptuj
Gdy przesłonięta w klasie pochodnej, akceptuje komunikat oferowany przez ten ISource
blok, przenosząc własność do obiektu wywołującego.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Obiekt runtime_object_identity
oferowany message
.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę accept
.
Wartość zwracana
Wskaźnik do komunikatu, że obiekt wywołujący ma teraz własność.
Uwagi
Metoda jest wywoływana accept
przez element docelowy, gdy komunikat jest oferowany przez ten ISource
blok. Zwrócony wskaźnik komunikatu może różnić się od tego, który został przekazany do propagate
metody ITarget
bloku, jeśli to źródło zdecyduje się utworzyć kopię komunikatu.
acquire_ref
Po zastąpieniu w klasie pochodnej uzyskuje liczbę odwołań dla tego ISource
bloku, aby zapobiec usunięciu.
virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Wskaźnik do bloku docelowego wywołującego tę metodę.
Uwagi
Ta metoda jest wywoływana przez ITarget
obiekt połączony z tym źródłem podczas link_target
metody .
consume
Gdy przesłonięta w klasie pochodnej, używa komunikatu oferowanego wcześniej przez ten ISource
blok i pomyślnie zarezerwowanego przez obiekt docelowy, przenosząc własność do obiektu wywołującego.
virtual message<T>* consume(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Obiekt runtime_object_identity
zarezerwowany message
.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę consume
.
Wartość zwracana
Wskaźnik do message
obiektu, którego obiekt wywołujący ma teraz własność.
Uwagi
Metoda jest podobna consume
do accept
metody , ale zawsze musi być poprzedzona wywołaniem metody , która reserve
zwróciła true
wartość .
~ISource
ISource
Niszczy obiekt.
virtual ~ISource();
link_target
Po zastąpieniu w klasie pochodnej łączy blok docelowy z tym ISource
blokiem.
virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Wskaźnik do bloku docelowego połączonego z tym ISource
blokiem.
zwolnić
Po zastąpieniu w klasie pochodnej zwalnia poprzednią pomyślną rezerwację komunikatów.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Obiekt runtime_object_identity
zarezerwowany message
.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę release
.
release_ref
Po zastąpieniu w klasie pochodnej zwalnia liczbę odwołań dla tego ISource
bloku.
virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Wskaźnik do bloku docelowego wywołującego tę metodę.
Uwagi
Ta metoda jest wywoływana przez ITarget
obiekt, który jest odłączony od tego źródła. Blok źródłowy może zwolnić wszystkie zasoby zarezerwowane dla bloku docelowego.
rezerwować
Po zastąpieniu w klasie pochodnej rezerwuje komunikat wcześniej oferowany przez ten ISource
blok.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Obiekt runtime_object_identity
oferowany message
.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę reserve
.
Wartość zwracana
true
jeśli wiadomość została pomyślnie zarezerwowana, false
w przeciwnym razie. Rezerwacje mogą zakończyć się niepowodzeniem z wielu powodów, w tym: komunikat został już zarezerwowany lub zaakceptowany przez inny obiekt docelowy, źródło może odmówić rezerwacji itd.
Uwagi
Po wywołaniu reserve
metody , jeśli się powiedzie, musisz zadzwonić consume
do lub release
w celu podjęcia lub rezygnacji z posiadania wiadomości, odpowiednio.
unlink_target
Po zastąpieniu w klasie pochodnej odłącza blok docelowy od tego ISource
bloku, jeśli zostanie znaleziony wcześniej połączony.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Wskaźnik do bloku docelowego jest odłączony od tego ISource
bloku.
unlink_targets
Po zastąpieniu w klasie pochodnej odłącz wszystkie bloki docelowe z tego ISource
bloku.
virtual void unlink_targets() = 0;