Classe call
Un blocco della messaggistica call
è un oggetto target_block
multi-origine ordinato che richiama una funzione specificata quando riceve un messaggio.
Sintassi
template<class T, class _FunctorType = std::function<void(T const&)>>
class call : public target_block<multi_link_registry<ISource<T>>>;
Parametri
T
Tipo di payload dei messaggi propagati a questo blocco.
_FunctorType
Firma delle funzioni che questo blocco può accettare.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
call | Con overload. Costruisce un blocco della messaggistica call . |
~call Destructor | Elimina definitivamente il call blocco di messaggistica. |
Metodi protetti
Nome | Descrizione |
---|---|
process_input_messages | Esegue la funzione di chiamata sui messaggi di input. |
process_message | Elabora un messaggio accettato da questo call blocco di messaggistica. |
propagate_message | Passa in modo asincrono un messaggio da un ISource blocco a questo call blocco di messaggistica. Viene richiamato dal propagate metodo , quando viene chiamato da un blocco di origine. |
send_message | Passa in modo sincrono un messaggio da un ISource blocco a questo call blocco di messaggistica. Viene richiamato dal send metodo , quando viene chiamato da un blocco di origine. |
supports_anonymous_source | Esegue l'override del metodo supports_anonymous_source per indicare che questo blocco può accettare messaggi offerti da un'origine non collegata. (sostituzioni )ITarget::supports_anonymous_source.) |
Osservazioni:
Per altre informazioni, vedere Blocchi di messaggi asincroni.
Gerarchia di ereditarietà
call
Requisiti
Intestazione: agents.h
Spazio dei nomi: Concurrency
call
Costruisce un blocco della messaggistica call
.
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);
Parametri
_Func
Funzione che verrà richiamata per ogni messaggio accettato.
_Filtro
Funzione di filtro che determina se i messaggi offerti devono essere accettati.
_PScheduler
Oggetto Scheduler
all'interno del quale è pianificata l'attività di propagazione per il blocco della messaggistica call
.
_PScheduleGroup
Oggetto ScheduleGroup
all'interno del quale è pianificata l'attività di propagazione per il blocco della messaggistica call
. L'oggetto Scheduler
usato è previsto dal gruppo di pianificazione.
Osservazioni:
Se non si specificano i parametri _PScheduler
o _PScheduleGroup
, il runtime usa l'utilità di pianificazione predefinita.
Il tipo _Call_method
è un funtore con firma void (T const &)
richiamato da questo call
blocco di messaggistica per elaborare un messaggio.
Il tipo filter_method
è un funtore con firma bool (T const &)
che viene richiamato da questo call
blocco di messaggistica per determinare se deve accettare o meno un messaggio offerto.
~chiamare
Elimina definitivamente il call
blocco di messaggistica.
~call();
process_input_messages
Esegue la funzione di chiamata sui messaggi di input.
virtual void process_input_messages(_Inout_ message<T>* _PMessage);
Parametri
_PMessage
Puntatore al messaggio da gestire.
process_message
Elabora un messaggio accettato da questo call
blocco di messaggistica.
virtual void process_message(_Inout_ message<T>* _PMessage);
Parametri
_PMessage
Puntatore al messaggio da gestire.
propagate_message
Passa in modo asincrono un messaggio da un ISource
blocco a questo call
blocco di messaggistica. Viene richiamato dal propagate
metodo , quando viene chiamato da un blocco di origine.
virtual message_status propagate_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parametri
_PMessage
Puntatore all'oggetto message
.
_PSource
Puntatore al blocco di origine che offre il messaggio.
Valore restituito
Un message_status'indicazione di ciò che la destinazione ha deciso di fare con il messaggio.
send_message
Passa in modo sincrono un messaggio da un ISource
blocco a questo call
blocco di messaggistica. Viene richiamato dal send
metodo , quando viene chiamato da un blocco di origine.
virtual message_status send_message(
_Inout_ message<T>* _PMessage,
_Inout_ ISource<T>* _PSource);
Parametri
_PMessage
Puntatore all'oggetto message
.
_PSource
Puntatore al blocco di origine che offre il messaggio.
Valore restituito
Un message_status'indicazione di ciò che la destinazione ha deciso di fare con il messaggio.
supports_anonymous_source
Esegue l'override del metodo supports_anonymous_source
per indicare che questo blocco può accettare messaggi offerti da un'origine non collegata.
virtual bool supports_anonymous_source();
Valore restituito
true
poiché il blocco non posticipa i messaggi offerti.