Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.