Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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();