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ého obsahu zpráv předávaný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. Vytvoří call blok pro zasílání zpráv.
~volání Destruktoru call Zničí blok zasílání zpráv.

Chráněné metody

Název Popis
zpracovat_vstupní_zprávy 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.
podporuje_anonymní_zdroj 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

ITarget

target_block

call

Požadavky

Hlavička: agents.h

Obor názvů: souběžnost

volání

Vytvoří call blok pro 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 objektu je dané skupinou plánů.

Poznámky

Modul runtime používá výchozí plánovač, pokud nezadáte buď parametr _PScheduler nebo parametr _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();

zpracovat_vstupní_zprávy

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.

šířit_zprávu

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

Označení message_status toho, co se cílový objekt rozhodl udělat se zprávou.

odeslat_zprávu

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 indikace toho, co se cíl rozhodl udělat se zprávou.

podporuje_anonymní_zdroj

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 neodkládá nabízené zprávy.

Viz také

concurrency – obor názvů
třída transformer