Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az transformer üzenetküldő blokk egy egy célként szolgáló, több forrásból álló, rendezett propagator_block , amely képes fogadni egy típusú üzeneteket, és képes más típusú üzenetek kötetlen számának tárolására.
Szemantika
template <class _Input, class _Output>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>,
multi_link_registry<ISource<_Input>>>;
Paraméterek
_Input
A puffer által elfogadott üzenetek hasznos adattípusa.
_Output
A puffer által tárolt és propagált üzenetek hasznos adattípusa.
Tagok
Nyilvános konstruktorok
| Név | Leírás |
|---|---|
transformer |
Túlterhelt. Üzenetkezelési blokkot transformer hoz létre. |
~transformer |
Megsemmisíti az üzenetküldési transformer blokkot. |
Védett metódusok
| Név | Leírás |
|---|---|
accept_message |
Elfogad egy üzenetet, amelyet ez az transformer üzenetküldési blokk ajánlott fel, és tulajdonjogot ad át a hívónak. |
consume_message |
A cél által transformer korábban felajánlott és fenntartott üzenetet használja fel, amely tulajdonjogot ad át a hívónak. |
link_target_notification |
Visszahívás, amely értesíti, hogy egy új cél kapcsolódik ehhez az transformer üzenetkezelési blokkhoz. |
propagate_message |
Aszinkron módon továbbít egy üzenetet egy ISource blokkból ebbe az transformer üzenetküldő blokkba. A metódus meghívja propagate , amikor egy forrásblokk meghívja. |
propagate_to_any_targets |
Végrehajtja a transzformátorfüggvényt a bemeneti üzeneteken. |
release_message |
Egy korábbi üzenetfoglalás kiadása. (Felülbírálások source_block::release_message.) |
reserve_message |
Lefoglalja az üzenetkezelési blokk által korábban felkínált transformer üzenetet. (Felülbírálások source_block::reserve_message.) |
resume_propagation |
Egy foglalás felszabadítása után folytatja a propagálást. (Felülbírálások source_block::resume_propagation.) |
send_message |
Szinkron módon továbbítja az üzenetet egy ISource blokkból ebbe az transformer üzenetblokkba. A metódus meghívja send , amikor egy forrásblokk meghívja. |
supports_anonymous_source |
Felülbírálja a metódust, amely azt jelzi, hogy ez a supports_anonymous_source blokk elfogadhatja a nem csatolt forrás által felajánlott üzeneteket. (Felülbírálások ITarget::supports_anonymous_source.) |
Megjegyzések
További információ: Aszinkron üzenetblokkok.
Öröklési hierarchia
transformer
Követelmények
Fejléc: agents.h
névtér: egyidejűség
accept_message
Elfogad egy üzenetet, amelyet ez az transformer üzenetküldési blokk ajánlott fel, és tulajdonjogot ad át a hívónak.
virtual message<_Output>* accept_message(runtime_object_identity _MsgId);
Paraméterek
_MsgId
A runtime_object_identity felajánlott message objektum.
Visszaadott érték
Mutató arra az message objektumra, amelynek a hívónak most már a tulajdonosa.
consume_message
A cél által transformer korábban felajánlott és fenntartott üzenetet használja fel, amely tulajdonjogot ad át a hívónak.
virtual message<_Output>* consume_message(runtime_object_identity _MsgId);
Paraméterek
_MsgId
message A runtime_object_identity felhasznált objektum.
Visszaadott érték
Mutató arra az message objektumra, amelynek a hívónak most már a tulajdonosa.
Megjegyzések
acceptEhhez hasonló, de mindig megelőzi egy hívás.reserve
link_target_notification
Visszahívás, amely értesíti, hogy egy új cél kapcsolódik ehhez az transformer üzenetkezelési blokkhoz.
virtual void link_target_notification(_Inout_ ITarget<_Output> *);
propagate_message
Aszinkron módon továbbít egy üzenetet egy ISource blokkból ebbe az transformer üzenetküldő blokkba. A metódus meghívja propagate , amikor egy forrásblokk meghívja.
virtual message_status propagate_message(
_Inout_ message<_Input>* _PMessage,
_Inout_ ISource<_Input>* _PSource);
Paraméterek
_PMessage
Az objektumra mutató message mutató.
_PSource
Az üzenetet felajánló forrásblokkra mutató mutató.
Visszaadott érték
Egy message_status annak jelzése, hogy a cél mit akar tenni az üzenettel.
propagate_to_any_targets
Végrehajtja a transzformátorfüggvényt a bemeneti üzeneteken.
virtual void propagate_to_any_targets(_Inout_opt_ message<_Output> *);
release_message
Egy korábbi üzenetfoglalás kiadása.
virtual void release_message(runtime_object_identity _MsgId);
Paraméterek
_MsgId
message A runtime_object_identity felszabadított objektum.
reserve_message
Lefoglalja az üzenetkezelési blokk által korábban felkínált transformer üzenetet.
virtual bool reserve_message(runtime_object_identity _MsgId);
Paraméterek
_MsgId
message A runtime_object_identity fenntartott objektum.
Visszaadott érték
true ha az üzenet lefoglalása sikeresen megtörtént, false ellenkező esetben.
Megjegyzések
A meghívás után reserve , ha visszakerül true, consume vagy release meg kell hívni az üzenet tulajdonjogának elvételéhez vagy kiadásához.
resume_propagation
Egy foglalás felszabadítása után folytatja a propagálást.
virtual void resume_propagation();
send_message
Szinkron módon továbbítja az üzenetet egy ISource blokkból ebbe az transformer üzenetblokkba. A metódus meghívja send , amikor egy forrásblokk meghívja.
virtual message_status send_message(
_Inout_ message<_Input>* _PMessage,
_Inout_ ISource<_Input>* _PSource);
Paraméterek
_PMessage
Az objektumra mutató message mutató.
_PSource
Az üzenetet felajánló forrásblokkra mutató mutató.
Visszaadott érték
Egy message_status annak jelzése, hogy a cél mit akar tenni az üzenettel.
supports_anonymous_source
Felülbírálja a metódust, amely azt jelzi, hogy ez a supports_anonymous_source blokk elfogadhatja a nem csatolt forrás által felajánlott üzeneteket.
virtual bool supports_anonymous_source();
Visszaadott érték
true mert a blokk nem halasztja el a felajánlott üzeneteket.
transformer
Üzenetkezelési blokkot transformer hoz létre.
transformer(
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
transformer(
Scheduler& _PScheduler,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
Scheduler& _PScheduler,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
transformer(
ScheduleGroup& _PScheduleGroup,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget = NULL);
transformer(
ScheduleGroup& _PScheduleGroup,
_Transform_method const& _Func,
_Inout_opt_ ITarget<_Output>* _PTarget,
filter_method const& _Filter);
Paraméterek
_Func
Egy függvény, amelyet minden elfogadott üzenethez meghívunk.
_PTarget
Mutató egy célblokkra a transzformátorhoz való csatoláshoz.
_Filter
Szűrőfüggvény, amely meghatározza, hogy a felajánlott üzeneteket el kell-e fogadni.
_PScheduler
Az Scheduler objektum, amelyen belül a transformer üzenetküldési blokk propagálási feladatának ütemezése történik.
_PScheduleGroup
Az ScheduleGroup objektum, amelyen belül a transformer üzenetküldési blokk propagálási feladatának ütemezése történik. A használt Scheduler objektumot az ütemezési csoport feltételezi.
Megjegyzések
A futtatókörnyezet az alapértelmezett ütemezőt használja, ha nem adja meg a _PScheduler paramétereket._PScheduleGroup
A típus _Transform_method egy aláírással _Output (_Input const &) rendelkező funktor, amelyet ez az transformer üzenetkezelési blokk hív meg az üzenetek feldolgozásához.
A típus filter_method egy aláírással bool (_Input const &) rendelkező funktor, amelyet ez az transformer üzenetküldő blokk hív meg, hogy eldöntse, elfogadja-e a felajánlott üzenetet.
~transformer
Megsemmisíti az üzenetküldési transformer blokkot.
~transformer();