Share via


ordered_message_processor (Clase)

Un ordered_message_processor es un message_processor que permite a los bloques de mensaje procesar los mensajes en el orden que se recibieron.

Sintaxis

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

Parámetros

T
El tipo de carga de los mensajes que controla el procesador.

Miembros

Definiciones de tipos públicas

Nombre Descripción
type Alias de tipo para T.

Constructores públicos

Nombre Descripción
ordered_message_processor Construye un objeto ordered_message_processor.
~ordered_message_processor (destructor) Destruye el objeto ordered_message_processor.

Métodos públicos

Nombre Descripción
async_send Pone en cola los mensajes de forma asincrónica e inicia una tarea de procesamiento, si aún no se ha hecho. (Invalida message_processor::async_send.)
initialize Inicializa el objeto ordered_message_processor con la función de devolución de llamada, el programador y el grupo de programación adecuados.
initialize_batched_processing Inicialización del procesamiento de mensajes por lotes
sync_send Pone en cola los mensajes de forma sincrónica e inicia una tarea de procesamiento, si aún no se ha hecho. (Invalida message_processor::sync_send.)
wait Una espera de giro específica del procesador que se usa en destructores de bloques de mensajes para asegurarse de que todas las tareas de procesamiento asincrónicas tienen tiempo para finalizar antes de destruir el bloque. (Invalida message_processor::wait.)

Métodos protegidos

Nombre Descripción
process_incoming_message Función de procesamiento a la que se llama de forma asincrónica. Quita los mensajes y comienza a procesarlos. (Invalida message_processor::process_incoming_message.)

Jerarquía de herencia

message_processor

ordered_message_processor

Requisitos

Encabezado: agents.h

Espacio de nombres: simultaneidad

async_send

Pone en cola los mensajes de forma asincrónica e inicia una tarea de procesamiento, si aún no se ha hecho.

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

Parámetros

_Msg
Un puntero a un mensaje.

initialize

Inicializa el objeto ordered_message_processor con la función de devolución de llamada, el programador y el grupo de programación adecuados.

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

Parámetros

_PScheduler
Puntero al programador que se va a usar para programar tareas ligeras.

_PScheduleGroup
Puntero al grupo de programación que se va a usar para programar tareas ligeras.

_Handler
El functor de controlador invocado durante la devolución de llamada.

initialize_batched_processing

Inicialización del procesamiento de mensajes por lotes

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

Parámetros

_Processor
Functor de procesador invocado durante la devolución de llamada.

_Propagator
Functor propagador invocado durante la devolución de llamada.

ordered_message_processor

Construye un objeto ordered_message_processor.

ordered_message_processor();

Comentarios

ordered_message_processor no programará controladores asincrónicos o sincrónicos hasta que se llame a la función initialize.

~ordered_message_processor

Destruye el objeto ordered_message_processor.

virtual ~ordered_message_processor();

Comentarios

Espera todas las operaciones asincrónicas pendientes antes de destruir el procesador.

process_incoming_message

Función de procesamiento a la que se llama de forma asincrónica. Quita los mensajes y comienza a procesarlos.

virtual void process_incoming_message();

sync_send

Pone en cola los mensajes de forma sincrónica e inicia una tarea de procesamiento, si aún no se ha hecho.

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

Parámetros

_Msg
Un puntero a un mensaje.

wait

Una espera de giro específica del procesador que se usa en destructores de bloques de mensajes para asegurarse de que todas las tareas de procesamiento asincrónicas tienen tiempo para finalizar antes de destruir el bloque.

virtual void wait();

Consulte también

concurrency (espacio de nombres)