Třída call
call
Blok zasílání zpráv je více zdrojů uspořádaný target_block
tak, že při přijetí zprávy vyvolá zadanou funkci.
Syntaxe
template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;
Parametry
T
Typ datové části zpráv šířených do tohoto bloku.
_FunctorType
Podpis funkcí, které může tento blok přijmout.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
zavolat | Přetíženo. call Vytvoří blok zasílání zpráv. |
~Call Destructor | call Zničí blok zasílání zpráv. |
Chráněné metody
Název | Popis |
---|---|
process_input_messages | Spustí funkci volání na vstupních zprávách. |
process_message | Zpracovává zprávu, kterou přijal tento call blok zasílání zpráv. |
propagate_message | Asynchronně předává zprávu z ISource bloku do tohoto call bloku zasílání zpráv. Vyvolá se metodou propagate při zavolání zdrojovým blokem. |
send_message | Synchronně předává zprávu z ISource bloku do tohoto call bloku zasílání zpráv. Vyvolá se metodou send při zavolání zdrojovým blokem. |
supports_anonymous_source | Přepíše metodu supports_anonymous_source tak, aby označovala, že tento blok může přijímat zprávy nabízené zdrojem, který není propojený. (Přepsání ITarget::supports_anonymous_source.) |
Poznámky
Další informace naleznete v tématu Asynchronní bloky zpráv.
Hierarchie dědičnosti
call
Požadavky
Hlavička: agents.h
Namespace: souběžnost
call
call
Vytvoří blok zasílání zpráv.
call(
_Call_method const& _Func);
call(
_Call_method const& _Func,
filter_method const& _Filter);
call(
Scheduler& _PScheduler,
_Call_method const& _Func);
call(
Scheduler& _PScheduler,
_Call_method const& _Func,
filter_method const& _Filter);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func);
call(
ScheduleGroup& _PScheduleGroup,
_Call_method const& _Func,
filter_method const& _Filter);
Parametry
_Func
Funkce, která se vyvolá pro každou přijatou zprávu.
_Filtr
Funkce filtru, která určuje, jestli mají být přijaté zprávy.
_PScheduler
Objekt Scheduler
, ve kterém je naplánována úloha šíření bloku call
zasílání zpráv.
_PScheduleGroup
Objekt ScheduleGroup
, ve kterém je naplánována úloha šíření bloku call
zasílání zpráv. Použitý Scheduler
objekt je odvozen ze skupiny plánů.
Poznámky
Modul runtime používá výchozí plánovač, pokud nezadáte _PScheduler
parametry._PScheduleGroup
Typ _Call_method
je functor s podpisem void (T const &)
, který je vyvolán tímto call
blokem zasílání zpráv ke zpracování zprávy.
Typ filter_method
je functor s podpisem bool (T const &)
, který je vyvolán tímto call
blokem zasílání zpráv, aby určil, zda má přijmout nabízenou zprávu.
~zavolat
call
Zničí blok zasílání zpráv.
~call();
process_input_messages
Spustí funkci volání na vstupních zprávách.
virtual void process_input_messages(_Inout_ message<T>* _PMessage);
Parametry
_PMessage
Ukazatel na zprávu, která se má zpracovat.
process_message
Zpracovává zprávu, kterou přijal tento call
blok zasílání zpráv.
virtual void process_message(_Inout_ message<T>* _PMessage);
Parametry
_PMessage
Ukazatel na zprávu, která se má zpracovat.
propagate_message
Asynchronně předává zprávu z ISource
bloku do tohoto call
bloku zasílání zpráv. Vyvolá se metodou propagate
při zavolání zdrojovým blokem.
virtual message_status propagate_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parametry
_PMessage
Ukazatel na message
objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
send_message
Synchronně předává zprávu z ISource
bloku do tohoto call
bloku zasílání zpráv. Vyvolá se metodou send
při zavolání zdrojovým blokem.
virtual message_status send_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parametry
_PMessage
Ukazatel na message
objekt.
_PSource
Ukazatel na zdrojový blok nabízející zprávu.
Návratová hodnota
Message_status označení toho, co se cíl rozhodl se zprávou udělat.
supports_anonymous_source
Přepíše metodu supports_anonymous_source
tak, aby označovala, že tento blok může přijímat zprávy nabízené zdrojem, který není propojený.
virtual bool supports_anonymous_source();
Návratová hodnota
true
vzhledem k tomu, že blok odloží nabízené zprávy.