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
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.