Класс ordered_message_processor

Класс ordered_message_processor представляет собой message_processor, который позволяет блокам обмена сообщениями обрабатывать сообщения в том порядке, в котором они их получают.

Синтаксис

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

Параметры

T
Тип полезных данных сообщений, обрабатываемых обработчиком.

Участники

Общедоступные определения типов

Имя Описание
type Псевдоним типа для T.

Открытые конструкторы

Имя Описание
ordered_message_processor Создает объект ordered_message_processor.
Деструктор ~ordered_message_processor Уничтожает ordered_message_processor объект.

Открытые методы

Имя Описание
async_send Асинхронно помещает сообщения в очередь и запускает задачу обработки, если это еще не сделано. (Переопределяет message_processor::async_send.)
Инициализации Инициализирует ordered_message_processor объект с соответствующей функцией обратного вызова, планировщиком и группой расписаний.
initialize_batched_processing Инициализация обработки пакетных сообщений
sync_send Синхронно помещает сообщения в очередь и запускает задачу обработки, если это еще не сделано. (Переопределяет message_processor::sync_send.)
Подожди Ожидание спина для процессора, используемое в деструкторах блоков сообщений, чтобы убедиться, что все асинхронные задачи обработки имеют время завершения перед уничтожением блока. (Переопределяет message_processor::wait.)

Защищенные методы

Имя Описание
process_incoming_message Функция обработки, вызываемая асинхронно. Он отменяет сообщения и начинает их обработку. (Переопределяет message_processor::p rocess_incoming_message.)

Иерархия наследования

message_processor

ordered_message_processor

Требования

Заголовок: agents.h

Пространство имен: concurrency

async_send

Асинхронно помещает сообщения в очередь и запускает задачу обработки, если это еще не сделано.

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

Параметры

_Msg
Указатель на сообщение.

Инициализации

Инициализирует ordered_message_processor объект с соответствующей функцией обратного вызова, планировщиком и группой расписаний.

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

Параметры

_PScheduler
Указатель на планировщик, используемый для планирования задач легкого веса.

_PScheduleGroup
Указатель на группу расписаний, используемую для планирования задач легкого веса.

_Обработчик
Обработчик functor вызывается во время обратного вызова.

initialize_batched_processing

Инициализация обработки пакетных сообщений

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

Параметры

_Процессор
Обработчик functor вызывается во время обратного вызова.

_Распространитель
Средство распространения functor, вызываемое во время обратного вызова.

ordered_message_processor

Создает объект ordered_message_processor.

ordered_message_processor();

Замечания

Это ordered_message_processor не будет планировать асинхронные или синхронные обработчики до вызова initialize функции.

~ordered_message_processor

Уничтожает ordered_message_processor объект.

virtual ~ordered_message_processor();

Замечания

Ожидает завершения всех невыполненных асинхронных операций перед уничтожением процессора.

process_incoming_message

Функция обработки, вызываемая асинхронно. Он отменяет сообщения и начинает их обработку.

virtual void process_incoming_message();

sync_send

Синхронно помещает сообщения в очередь и запускает задачу обработки, если это еще не сделано.

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

Параметры

_Msg
Указатель на сообщение.

wait

Ожидание спина для процессора, используемое в деструкторах блоков сообщений, чтобы убедиться, что все асинхронные задачи обработки имеют время завершения перед уничтожением блока.

virtual void wait();

См. также

Пространство имен concurrency