Share via


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à

message_processor

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.

_Propagator
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();

Vedi anche

Spazio dei nomi concurrency