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 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 acceptmetody , ale zawsze musi być poprzedzona wywołaniem metody , która reserve zwróciła truewartość .
~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 reservemetody , 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;