Поделиться через


Класс ordered_message_processor

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

Синтаксис

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

Параметры

T
Тип полезной нагрузки сообщений, которые обрабатывает процессор.

Участники

Общедоступные typedefы

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

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

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

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

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

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

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

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

message_processor

ordered_message_processor

Требования

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

Пространство имен: конкурентность

асинхронная_отправка

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

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
Указатель на группу планирования, используемую для планирования легковесных задач.

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

инициализация_пакетной_обработки

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

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

Параметры

_Процессор
Функтор процессора вызывается во время функции обратного вызова.

_Распространитель
Функтор распространения, вызываемый во время обратного вызова.

процессор упорядоченных сообщений

Создает объект 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();

синхронная_отправка

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

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

Параметры

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

подождите

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

virtual void wait();

См. также

Пространство имен параллелизм