Notatka
Dostęp do tej strony wymaga autoryzacji. Może 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 bloków ITarget.
Składnia
template<class T>
class ISource;
Parametry
T
Typ danych ładunku w komunikatach generowanych przez blok źródłowy.
Członkowie
Public Typedefs
| 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. |
| wydanie | Po zastąpieniu w klasie pochodnej zwalnia poprzednią udaną rezerwację wiadomości. |
| release_ref | Po zastąpieniu w klasie pochodnej zmniejsza licznik odwołań dla tego bloku ISource. |
| rezerwować | Po zastąpieniu w klasie pochodnej blok ten rezerwuje wiadomość wcześniej zaoferowaną przez ten ISource blok. |
| unlink_target | Kiedy zostanie zastąpiony w klasie pochodnej, odłącza blok docelowy od tego bloku ISource, jeśli zostanie wcześniej znaleziony jako połączony. |
| unlink_targets | Po przedefiniowaniu w klasie pochodnej, odłącz wszystkie bloki docelowe od tego bloku ISource. |
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
Kiedy przesłonięty w klasie pochodnej, akceptuje komunikat oferowany przez ten blok ISource, przekazując własność wywołującemu.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
runtime_object_identity oferowanego obiektu message.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę accept .
Wartość zwracana
Wskaźnik do komunikatu, którego obiekt wywołujący jest teraz właścicielem.
Uwagi
Metoda accept jest wywoływana przez element docelowy, gdy przez ten ISource blok jest oferowany komunikat. 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 obiekt ITarget, który jest łączony z tym źródłem podczas metody link_target.
zużywać
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 dla message.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę consume .
Wartość zwracana
Wskaźnik do message obiektu, którego właścicielem jest teraz podmiot wywołujący.
Uwagi
Metoda consume jest podobna do accept, ale zawsze musi być poprzedzona wywołaniem reserve, które zwróciło 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 powiązanego z tym blokiem ISource.
wersja
Po zastąpieniu w klasie pochodnej zwalnia poprzednią udaną rezerwację wiadomości.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Obiekt runtime_object_identity zarezerwowany dla message.
_PTarget
Wskaźnik do bloku docelowego wywołującego metodę release .
release_ref
Po zastąpieniu w klasie pochodnej zmniejsza licznik odwołań dla tego bloku ISource.
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 blok ten rezerwuje wiadomość wcześniej zaoferowaną przez ten ISource blok.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
runtime_object_identity oferowanego obiektu 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 wypadku. Rezerwacje mogą zakończyć się niepowodzeniem z wielu powodów, na przykład: wiadomość została już zarezerwowana lub zaakceptowana przez innego docelowego odbiorcę, źródło może odrzucić rezerwacje, itd.
Uwagi
Po wywołaniu reserve, jeśli się powiedzie, musisz wywołać consume lub release w celu odpowiednio podjęcia lub rezygnacji z posiadania wiadomości.
unlink_target
Kiedy zostanie zastąpiony w klasie pochodnej, odłącza blok docelowy od tego bloku ISource, jeśli zostanie wcześniej znaleziony jako połączony.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Wskaźnik do bloku docelowego, który jest odłączany od tego ISource bloku.
odłącz_cele
Po przedefiniowaniu w klasie pochodnej, odłącz wszystkie bloki docelowe od tego bloku ISource.
virtual void unlink_targets() = 0;