Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Třída ISource je rozhraní pro všechny zdrojové bloky. Zdrojové bloky šíří zprávy do ITarget bloků.
Syntaxe
template<class T>
class ISource;
Parametry
T
Datový typ datové části v rámci zpráv vytvořených zdrojovým blokem.
Členové
Veřejné typové definice
| Název | Popis |
|---|---|
source_type |
Alias typu pro T. |
Veřejné konstruktory
| Název | Popis |
|---|---|
| ~ISource – destruktor |
ISource Zničí objekt. |
Veřejné metody
| Název | Popis |
|---|---|
| přijmout | Při přepsání v odvozené třídě přijímá zprávu, kterou tento ISource blok nabídl, a předává vlastnictví volajícímu. |
| acquire_ref | Když je přepsána v odvozené třídě, získá referenční počet na tomto ISource bloku, aby se zabránilo smazání. |
| spotřebovat | Při přepsání v odvozené třídě spotřebovává zprávu, která byla dříve nabízena tímto ISource blokem a úspěšně rezervována cílem, čímž převádí vlastnictví na volajícího. |
| link_target | Když je přepsána v odvozené třídě, připojí cílový blok k tomuto ISource bloku. |
| uvolnit | ** Při přetížení v odvozené třídě uvolní předchozí úspěšnou rezervaci zprávy. |
| release_ref | Při přepsání v odvozené třídě uvolní referenční počet na tomto ISource bloku. |
| rezerva | Při přepsání v odvozené třídě si vyhrazuje zprávu dříve nabízenou tímto ISource blokem. |
| unlink_target | Při přepsání v odvozené třídě zruší propojení cílového bloku s tímto ISource blokem, pokud bylo zjištěno, že se dříve propojil. |
| unlink_targets | Když je přepsána v odvozené třídě, zruší propojení všech cílových bloků s tímto blokem ISource. |
Poznámky
Další informace naleznete v tématu Asynchronní bloky zpráv.
Hierarchie dědičnosti
ISource
Požadavky
Hlavička: agents.h
Obor názvů: souběžnost
přijmout
Při přepsání v odvozené třídě přijímá zprávu, která byla nabídnutá tímto ISource blokem, předání vlastnictví volajícímu.
virtual message<T>* accept(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
runtime_object_identity Nabízený message objekt.
_PTarget
Ukazatel na cílový blok, který volá metodu accept .
Návratová hodnota
Ukazatel na zprávu, jejíž vlastnictví nyní přebírá volající.
Poznámky
Metoda accept je volána cílem, zatímco zpráva je nabízena tímto ISource blokem. Vrácený ukazatel zprávy se může lišit od ukazatele zprávy předaného do propagate metody ITarget bloku, pokud se tento zdroj rozhodne vytvořit kopii zprávy.
acquire_ref
Když je přepsána v odvozené třídě, získá referenční počet na tomto ISource bloku, aby se zabránilo smazání.
virtual void acquire_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Ukazatel na cílový blok, který tuto metodu volá.
Poznámky
Tato metoda je volána objektem ITarget , který je propojen s tímto zdrojem během link_target metody.
využít
Při přepsání v odvozené třídě spotřebovává zprávu, která byla dříve nabízena tímto ISource blokem a úspěšně rezervována cílem, čímž převádí vlastnictví na volajícího.
virtual message<T>* consume(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Rezervovaný objekt runtime_object_identitymessage.
_PTarget
Ukazatel na cílový blok, který volá metodu consume .
Návratová hodnota
Ukazatel na message objekt, ke kterému má volající nyní vlastnictví.
Poznámky
Metoda consume je podobná accept, ale musí vždy následovat po volání reserve, které vrátí true.
~ISource
ISource Zničí objekt.
virtual ~ISource();
cíl_odkazu
Když je přepsána v odvozené třídě, připojí cílový blok k tomuto ISource bloku.
virtual void link_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Ukazatel na cílový blok, který je propojený s tímto ISource blokem.
verze
** Při přetížení v odvozené třídě uvolní předchozí úspěšnou rezervaci zprávy.
virtual void release(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
Rezervovaný objekt runtime_object_identitymessage.
_PTarget
Ukazatel na cílový blok, který volá metodu release .
release_ref
Při přepsání v odvozené třídě uvolní referenční počet na tomto ISource bloku.
virtual void release_ref(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Ukazatel na cílový blok, který tuto metodu volá.
Poznámky
Tato metoda je volána ITarget objektem, který je odpojen od tohoto zdroje. Zdrojový blok může uvolnit všechny prostředky rezervované pro cílový blok.
rezerva
Při přepsání v odvozené třídě si vyhrazuje zprávu dříve nabízenou tímto ISource blokem.
virtual bool reserve(
runtime_object_identity _MsgId,
_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_MsgId
runtime_object_identity Nabízený message objekt.
_PTarget
Ukazatel na cílový blok, který volá metodu reserve .
Návratová hodnota
true pokud byla zpráva úspěšně rezervována, jinak false. Rezervace můžou selhat z mnoha důvodů, mezi které patří: zpráva už byla rezervována nebo přijata jiným cílem, zdroj mohl rezervace odepřít atd.
Poznámky
Jakmile zavoláte reserve, pokud se podaří, musíte zavolat buď consume nebo release pro převzetí nebo vzdání se vlastnictví zprávy.
odpojit_cíl
Při přepsání v odvozené třídě zruší propojení cílového bloku s tímto ISource blokem, pokud bylo zjištěno, že se dříve propojil.
virtual void unlink_target(_Inout_ ITarget<T>* _PTarget) = 0;
Parametry
_PTarget
Ukazatel na cílový blok, který se od tohoto ISource bloku odpojí.
unlink_targets
Když je přepsána v odvozené třídě, zruší propojení všech cílových bloků s tímto blokem ISource.
virtual void unlink_targets() = 0;