Share via


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à

ITarget

target_block

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.

Vedi anche

Spazio dei nomi concurrency
Classe transformer