Partilhar via


Classe ordered_message_processor

Um ordered_message_processor é um message_processor que permite que blocos de mensagens processem as mensagens pela ordem em que foram recebidas.

Sintaxe

template<class T>
class ordered_message_processor : public message_processor<T>;

Parâmetros

T
O tipo de carga útil das mensagens tratadas pelo processador.

Membros

Definições de Tipos Públicas

Nome Description
type Um apelido de tipo para T.

Construtores Públicos

Nome Description
processador_de_mensagens_ordenadas Constrói um ordered_message_processor objeto.
~ordered_message_processor: Destrutor Destrói o ordered_message_processor objeto.

Métodos Públicos

Nome Description
async_send Coloca mensagens em fila de forma assíncrona e inicia uma tarefa de processamento, caso ainda não tenha sido feito. (Substitui message_processor::async_send.)
inicializar Inicializa o objeto ordered_message_processor com a função de retorno apropriada, o agendador e o grupo de agendamento.
initialize_batched_processing Inicializar o processamento de mensagens em lote
sync_send Coloca mensagens em fila de forma síncrona e inicia uma tarefa de processamento, caso ainda não tenha sido feito. (Substitui message_processor::sync_send.)
aguarde Uma espera de spin específica para processador é usada em destrutores de blocos de mensagem para garantir que todas as tarefas de processamento assíncronas têm tempo para terminar antes de destruir o bloco. ( Sobrescreve message_processor::espera.)

Métodos Protegidos

Nome Description
process_incoming_message A função de processamento chamada assíncrona. Desliga as mensagens e começa a processá-las. (Substitui message_processor::processar_mensagem_de_entrada.)

Hierarquia de herança

message_processor

ordered_message_processor

Requerimentos

Cabeçalho: agents.h

Namespace: simultaneidade

envio_assíncrono

Coloca mensagens em fila de forma assíncrona e inicia uma tarefa de processamento, caso ainda não tenha sido feito.

virtual void async_send(_Inout_opt_ message<T>* _Msg);

Parâmetros

_Msg
Um ponteiro para uma mensagem.

inicializar

Inicializa o ordered_message_processor objeto com a função de callback apropriada, o escalonador e o grupo de agendamento.

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

Parâmetros

_PScheduler
Um apontador para o agendador a ser usado para a marcação de tarefas ligeiras.

_PScheduleGroup
Um apontador para o grupo de agendamento a ser usado para programar tarefas leves.

_Handler
Functor handler invocado durante o callback.

initialize_batched_processing

Inicializar o processamento de mensagens em lote

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

Parâmetros

_Processor
O funtor do processador era invocado durante o callback.

_Propagator
O functor propagador invocado durante o callback.

processador_de_mensagens_ordenadas

Constrói um ordered_message_processor objeto.

ordered_message_processor();

Observações

Isto ordered_message_processor não irá agendar manipuladores assíncronos ou síncronos até que a função initialize seja chamada.

~processador_de_mensagens_ordenadas

Destrói o ordered_message_processor objeto.

virtual ~ordered_message_processor();

Observações

Aguarda as operações assíncronas pendentes antes de destruir o processador.

processar_mensagem_entrada

A função de processamento chamada assíncrona. Desliga as mensagens e começa a processá-las.

virtual void process_incoming_message();

sync_send

Coloca mensagens em fila de forma síncrona e inicia uma tarefa de processamento, caso ainda não tenha sido feito.

virtual void sync_send(_Inout_opt_ message<T>* _Msg);

Parâmetros

_Msg
Um ponteiro para uma mensagem.

wait

Uma espera de spin específica para processador é usada em destrutores de blocos de mensagem para garantir que todas as tarefas de processamento assíncronas têm tempo para terminar antes de destruir o bloco.

virtual void wait();

Consulte também

concorrência Namespace