Udostępnij za pośrednictwem


Klasa wywołania

call Blok obsługi komunikatów to wieloźródło, uporządkowanetarget_block, które wywołuje określoną funkcję podczas odbierania komunikatu.

Składnia

template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;

Parametry

T
Typ ładunku komunikatów propagowany do tego bloku.

_FunctorType
Podpis funkcji, które ten blok może zaakceptować.

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
nazwać Przeciążone. call Tworzy blok obsługi komunikatów.
~call Destruktor Niszczy blok obsługi komunikatów call .

Metody chronione

Nazwa/nazwisko opis
process_input_messages Wykonuje funkcję wywołania w komunikatach wejściowych.
process_message Przetwarza komunikat zaakceptowany przez ten call blok obsługi komunikatów.
propagate_message Asynchronicznie przekazuje komunikat z ISource bloku do tego call bloku obsługi komunikatów. Jest wywoływana przez metodę propagate , gdy jest wywoływana przez blok źródłowy.
send_message Synchronicznie przekazuje komunikat z ISource bloku do tego call bloku obsługi komunikatów. Jest wywoływana przez metodę send , gdy jest wywoływana przez blok źródłowy.
supports_anonymous_source Zastępuje metodę supports_anonymous_source , aby wskazać, że ten blok może akceptować komunikaty oferowane przez źródło, które nie jest połączone. (Przesłonięcia) ITarget::supports_anonymous_source.)

Uwagi

Aby uzyskać więcej informacji, zobacz Asynchroniczne bloki komunikatów.

Hierarchia dziedziczenia

ITarget

target_block

call

Wymagania

Nagłówek: agents.h

Przestrzeń nazw: współbieżność

call

call Tworzy blok obsługi komunikatów.

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
Funkcja, która zostanie wywołana dla każdego zaakceptowanego komunikatu.

_Filtr
Funkcja filter, która określa, czy oferowane komunikaty powinny być akceptowane.

_PScheduler
Obiekt Scheduler , w którym zaplanowano zadanie call propagacji bloku obsługi komunikatów.

_PScheduleGroup
Obiekt ScheduleGroup , w którym zaplanowano zadanie call propagacji bloku obsługi komunikatów. Używany Scheduler obiekt jest dorozumiany przez grupę harmonogramu.

Uwagi

Jeśli nie określisz parametrów lub_PScheduleGroup, środowisko uruchomieniowe używa domyślnego _PScheduler harmonogramu.

Typ _Call_method to functor z podpisem void (T const &) , który jest wywoływany przez ten call blok obsługi komunikatów w celu przetworzenia komunikatu.

Typ filter_method to functor z podpisem bool (T const &) , który jest wywoływany przez ten call blok obsługi komunikatów w celu określenia, czy powinien zaakceptować oferowany komunikat.

~nazwać

Niszczy blok obsługi komunikatów call .

~call();

process_input_messages

Wykonuje funkcję wywołania w komunikatach wejściowych.

virtual void process_input_messages(_Inout_ message<T>* _PMessage);

Parametry

_PMessage
Wskaźnik do komunikatu, który ma być obsługiwany.

process_message

Przetwarza komunikat zaakceptowany przez ten call blok obsługi komunikatów.

virtual void process_message(_Inout_ message<T>* _PMessage);

Parametry

_PMessage
Wskaźnik do komunikatu, który ma być obsługiwany.

propagate_message

Asynchronicznie przekazuje komunikat z ISource bloku do tego call bloku obsługi komunikatów. Jest wywoływana przez metodę propagate , gdy jest wywoływana przez blok źródłowy.

virtual message_status propagate_message(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource);

Parametry

_PMessage
Wskaźnik do message obiektu.

_PSource
Wskaźnik do bloku źródłowego oferującego komunikat.

Wartość zwracana

Message_status wskazanie, co cel postanowił zrobić z komunikatem.

send_message

Synchronicznie przekazuje komunikat z ISource bloku do tego call bloku obsługi komunikatów. Jest wywoływana przez metodę send , gdy jest wywoływana przez blok źródłowy.

virtual message_status send_message(
    _Inout_ message<T>* _PMessage,
    _Inout_ ISource<T>* _PSource);

Parametry

_PMessage
Wskaźnik do message obiektu.

_PSource
Wskaźnik do bloku źródłowego oferującego komunikat.

Wartość zwracana

Message_status wskazanie, co cel postanowił zrobić z komunikatem.

supports_anonymous_source

Zastępuje metodę supports_anonymous_source , aby wskazać, że ten blok może akceptować komunikaty oferowane przez źródło, które nie jest połączone.

virtual bool supports_anonymous_source();

Wartość zwracana

true ponieważ blok nie odłoży oferowanych wiadomości.

Zobacz też

Przestrzeń nazw współbieżności
transformer, klasa