Compartilhar via


Classe "ordered_message_processor"

Uma ordered_message_processor é um message_processor que permite que blocos de mensagens processem mensagens na ordem em que foram recebidas.

Sintaxe

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

Parâmetros

T
O tipo de carga de mensagens manipuladas pelo processador.

Membros

Typedefs públicos

Nome Descrição
type Um apelido de tipo para T.

Construtores públicos

Nome Descrição
processador_de_mensagens_ordenadas Constrói um objeto ordered_message_processor.
Destruidor ~ordered_message_processor Destrói o objeto ordered_message_processor.

Métodos públicos

Nome Descrição
async_send Enfileira as mensagens de forma assíncrona e inicia uma tarefa de processamento se isso ainda não tiver sido feito. (Substitui message_processor::async_send.)
initialize Inicializa o objeto ordered_message_processor com a função de callback apropriada, o agendador e o grupo de agendamento.
inicializar_processamento_em_lotes Inicializa o processamento de mensagens em lote
sync_send Enfileira as mensagens de forma síncrona e inicia uma tarefa de processamento se isso ainda não tiver sido feito. (Substitui message_processor::sync_send.)
wait Essa espera de rotação específica do processador é usada em destruidores de bloco de mensagens para garantir que todas as tarefas de processamento assíncronas tenham tempo para terminarem antes da destruição do bloco. (Sobrescreve message_processor::wait.)

Métodos protegidos

Nome Descrição
processar_mensagem_entrante A função de processamento que é chamada de forma assíncrona. O sistema desenfileira mensagens e começa a processá-las. (Sobrescreve message_processor::process_incoming_message.)

Hierarquia de herança

message_processor

ordered_message_processor

Requisitos

Cabeçalho: agents.h

Namespace: simultaneidade

async_send

Enfileira as mensagens de forma assíncrona e inicia uma tarefa de processamento se isso ainda não tiver sido feito.

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

Parâmetros

_Msg
Um ponteiro para uma mensagem.

inicializar

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

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

Parâmetros

_PScheduler
Um ponteiro para o agendador a ser usado para agendar tarefas leves.

_PScheduleGroup
Um ponteiro para o grupo de agendamento a ser usado para agendar tarefas de baixo custo.

_Handler
O functor do manipulador invocado durante a chamada de retorno.

inicializar_processamento_em_lotes (initialize_batched_processing)

Inicializa o processamento de mensagens em lote

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

Parâmetros

_Processor
O functor do processador invocado durante o callback.

_Propagator
O functor do propagador invocado durante o retorno de chamada.

processador_de_mensagens_ordenadas

Constrói um objeto ordered_message_processor.

ordered_message_processor();

Comentários

Esse ordered_message_processor não agendará manipuladores assíncronos ou síncronos enquanto a função initialize não for chamada.

~ordered_message_processor

Destrói o objeto ordered_message_processor.

virtual ~ordered_message_processor();

Comentários

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

processar_mensagem_entrante

A função de processamento que é chamada de forma assíncrona. O sistema desenfileira mensagens e começa a processá-las.

virtual void process_incoming_message();

sync_send

Enfileira as mensagens de forma síncrona e inicia uma tarefa de processamento se isso ainda não tiver sido feito.

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

Parâmetros

_Msg
Um ponteiro para uma mensagem.

aguarde

Essa espera de rotação específica do processador é usada em destruidores de bloco de mensagens para garantir que todas as tarefas de processamento assíncronas tenham tempo para terminarem antes da destruição do bloco.

virtual void wait();

Confira também

Namespace de concorrência