Condividi tramite


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.
~ordered_message_processor Distruttore 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. Sovrascrive message_processor::async_send.
inizializzare Inizializza l'oggetto ordered_message_processor con la funzione di callback appropriata, il scheduler e il gruppo di pianificazione.
inizializzare_elaborazione_batch 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 La funzione di elaborazione chiamata asincronicamente. Rimuove dalla coda i messaggi e inizia a elaborarli. Sostituisce message_processor::process_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 ordered_message_processor con la funzione di callback appropriata, il scheduler e il gruppo di pianificazione.

void initialize(
    _Inout_opt_ Scheduler* _PScheduler,
    _Inout_opt_ ScheduleGroup* _PScheduleGroup,
    _Handler_method const& _Handler);

Parametri

_PScheduler
Puntatore allo scheduler da usare per la pianificazione di attività leggere.

_PScheduleGroup
Puntatore al gruppo di pianificazione da usare per la pianificazione di attività leggere.

_Gestore
Funtore del gestore richiamato durante un callback.

inizializzare_elaborazione_batch

Inizializza l'elaborazione batch dei messaggi

virtual void initialize_batched_processing(
    _Handler_method const& _Processor,
    _Propagator_method const& _Propagator);

Parametri

_Processore
Il functor del processore è stato invocato durante il callback.

_Propagatore
Funtore propagatore richiamato durante il callback.

processore_di_messaggi_ordinati

Costruisce un oggetto ordered_message_processor.

ordered_message_processor();

Osservazioni:

Questa ordered_message_processor operazione non pianifica gestori asincroni o sincroni finché la initialize funzione non viene chiamata.

~ordered_message_processor

Elimina definitivamente l'oggetto ordered_message_processor .

virtual ~ordered_message_processor();

Osservazioni:

Attende il completamento di tutte le operazioni asincrone in sospeso prima di eliminare il processore.

processa_messaggio_in_arrivo

La funzione di elaborazione chiamata asincronicamente. Rimuove dalla coda i messaggi e inizia a elaborarli.

virtual void process_incoming_message();

sincronizzare_invio

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.

attendere

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 concorrenza