Classe ordered_message_processor
Un ordered_message_processor
è un message_processor
che consente ai blocchi del messaggio di elaborare messaggi nell'ordine in cui vengono ricevuti.
Sintassi
template<class T>
class ordered_message_processor : public message_processor<T>;
Parametri
T
Tipo di payload dei messaggi gestiti dal processore.
Membri
Typedef pubblici
Nome | Descrizione |
---|---|
type |
Alias di tipo per T . |
Costruttori pubblici
Nome | Descrizione |
---|---|
ordered_message_processor | Costruisce un oggetto ordered_message_processor . |
Distruttore ~ordered_message_processor | Elimina definitivamente l'oggetto ordered_message_processor . |
Metodi pubblici
Nome | Descrizione |
---|---|
async_send | Accoda in modo asincrono i messaggi e avvia un'attività di elaborazione, se questa operazione non è già stata eseguita. (Esegue l'override di message_processor::async_send. |
inizializzare | Inizializza l'oggetto con la funzione di callback, l'utilità ordered_message_processor di pianificazione e il gruppo di pianificazione appropriati. |
initialize_batched_processing | Inizializza l'elaborazione batch dei messaggi |
sync_send | Accoda in modo sincrono i messaggi e avvia un'attività di elaborazione, se questa operazione non è già stata eseguita. Esegue l'override di message_processor::sync_send. |
aspettare | Attesa di rotazione specifica del processore usata nei distruttori dei blocchi di messaggi per assicurarsi che tutte le attività di elaborazione asincrone abbiano tempo da completare prima di distruggere il blocco. Esegue l'override di message_processor::wait. |
Metodi protetti
Nome | Descrizione |
---|---|
process_incoming_message | Funzione di elaborazione denominata in modo asincrono. Rimuove dalla coda i messaggi e inizia a elaborarli. Esegue l'override di message_processor::p rocess_incoming_message. |
Gerarchia di ereditarietà
ordered_message_processor
Requisiti
Intestazione: agents.h
Spazio dei nomi: Concurrency
async_send
Accoda in modo asincrono i messaggi e avvia un'attività di elaborazione, se questa operazione non è già stata eseguita.
virtual void async_send(_Inout_opt_ message<T>* _Msg);
Parametri
_Msg
Puntatore a un messaggio.
inizializzazione
Inizializza l'oggetto con la funzione di callback, l'utilità ordered_message_processor
di pianificazione e il gruppo di pianificazione appropriati.
void initialize(
_Inout_opt_ Scheduler* _PScheduler,
_Inout_opt_ ScheduleGroup* _PScheduleGroup,
_Handler_method const& _Handler);
Parametri
_PScheduler
Puntatore all'utilità di pianificazione da usare per la pianificazione di attività di peso leggero.
_PScheduleGroup
Puntatore al gruppo di pianificazione da usare per la pianificazione di attività di peso leggero.
_Gestore
Funtore del gestore richiamato durante il callback.
initialize_batched_processing
Inizializza l'elaborazione batch dei messaggi
virtual void initialize_batched_processing(
_Handler_method const& _Processor,
_Propagator_method const& _Propagator);
Parametri
_Processore
Functor del processore richiamato durante il callback.
_Propagatore
Funtore propagatore richiamato durante il callback.
ordered_message_processor
Costruisce un oggetto ordered_message_processor
.
ordered_message_processor();
Osservazioni:
Questa ordered_message_processor
operazione non pianifica gestori asincroni o sincroni fino a quando non viene chiamata la initialize
funzione.
~ordered_message_processor
Elimina definitivamente l'oggetto ordered_message_processor
.
virtual ~ordered_message_processor();
Osservazioni:
Attende tutte le operazioni asincrone in sospeso prima di distruggere il processore.
process_incoming_message
Funzione di elaborazione denominata in modo asincrono. Rimuove dalla coda i messaggi e inizia a elaborarli.
virtual void process_incoming_message();
sync_send
Accoda in modo sincrono i messaggi e avvia un'attività di elaborazione, se questa operazione non è già stata eseguita.
virtual void sync_send(_Inout_opt_ message<T>* _Msg);
Parametri
_Msg
Puntatore a un messaggio.
wait
Attesa di rotazione specifica del processore usata nei distruttori dei blocchi di messaggi per assicurarsi che tutte le attività di elaborazione asincrone abbiano tempo da completare prima di distruggere il blocco.
virtual void wait();