Класс ordered_message_processorordered_message_processor Class

Класс ordered_message_processor представляет собой message_processor, который позволяет блокам обмена сообщениями обрабатывать сообщения в том порядке, в котором они их получают.An ordered_message_processor is a message_processor that allows message blocks to process messages in the order they were received.

СинтаксисSyntax

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

ПараметрыParameters

TT
Тип полезных данных сообщений, обрабатываемых процессором.The payload type of messages handled by the processor.

ЭлементыMembers

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

ИмяName ОписаниеDescription
type Псевдоним типа для T .A type alias for T.

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

nameName ОписаниеDescription
ordered_message_processorordered_message_processor Создает объект ordered_message_processor.Constructs an ordered_message_processor object.
Деструктор ~ ordered_message_processor~ordered_message_processor Destructor Уничтожает ordered_message_processor объект.Destroys the ordered_message_processor object.

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

nameName ОписаниеDescription
async_sendasync_send Асинхронно ставит в очередь сообщения и запускает задачу обработки, если это еще не сделано.Asynchronously queues up messages and starts a processing task, if this has not been done already. (Переопределяет message_processor:: async_send.)(Overrides message_processor::async_send.)
устанавливаетinitialize Инициализирует ordered_message_processor объект с помощью соответствующей функции обратного вызова, планировщика и группы расписаний.Initializes the ordered_message_processor object with the appropriate callback function, scheduler and schedule group.
initialize_batched_processinginitialize_batched_processing Инициализация обработки пакетных сообщенийInitialize batched message processing
sync_sendsync_send Синхронно ставит в очередь сообщения и запускает задачу обработки, если это еще не сделано.Synchronously queues up messages and starts a processing task, if this has not been done already. (Переопределяет message_processor:: sync_send.)(Overrides message_processor::sync_send.)
ожиданияwait Ожидание конкретного процессора, используемое в деструкторах блоков сообщений, чтобы убедиться, что все задачи асинхронной обработки имеют время для завершения перед уничтожением блока.A processor-specific spin wait used in destructors of message blocks to make sure that all asynchronous processing tasks have time to finish before destroying the block. (Переопределяет message_processor:: wait.)(Overrides message_processor::wait.)

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

ИмяName ОписаниеDescription
process_incoming_messageprocess_incoming_message Функция обработки, которая вызывается асинхронно.The processing function that is called asynchronously. Она вымещает сообщения из очереди и начинает их обработку.It dequeues messages and begins processing them. (Переопределяет message_processor::p rocess_incoming_message.)(Overrides message_processor::process_incoming_message.)

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

message_processormessage_processor

ordered_message_processor

ТребованияRequirements

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

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

async_sendasync_send

Асинхронно ставит в очередь сообщения и запускает задачу обработки, если это еще не сделано.Asynchronously queues up messages and starts a processing task, if this has not been done already.

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

ПараметрыParameters

_Msg_Msg
Указатель на сообщение.A pointer to a message.

устанавливаетinitialize

Инициализирует ordered_message_processor объект с помощью соответствующей функции обратного вызова, планировщика и группы расписаний.Initializes the ordered_message_processor object with the appropriate callback function, scheduler and schedule group.

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

ПараметрыParameters

_PScheduler_PScheduler
Указатель на планировщик, который будет использоваться для планирования задач с низкой плотностью.A pointer to the scheduler to be used for scheduling light-weight tasks.

_PScheduleGroup_PScheduleGroup
Указатель на группу расписаний, которая будет использоваться для планирования задач с низкой плотностью.A pointer to the schedule group to be used for scheduling light-weight tasks.

_Handler_Handler
Обработчик функтор вызывается во время обратного вызова.The handler functor invoked during callback.

initialize_batched_processinginitialize_batched_processing

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

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

ПараметрыParameters

_Processor_Processor
Процессор функтор, вызванный во время обратного вызова.The processor functor invoked during callback.

_Propagator_Propagator
Распространитель функтор вызывается во время обратного вызова.The propagator functor invoked during callback.

ordered_message_processorordered_message_processor

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

ordered_message_processor();

КомментарииRemarks

При этом ordered_message_processor асинхронные или синхронные обработчики не будут планироваться до initialize вызова функции.This ordered_message_processor will not schedule asynchronous or synchronous handlers until the initialize function is called.

~ ordered_message_processor~ordered_message_processor

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

virtual ~ordered_message_processor();

КомментарииRemarks

Ожидает завершения всех невыполненных асинхронных операций перед уничтожением процессора.Waits for all outstanding asynchronous operations before destroying the processor.

process_incoming_messageprocess_incoming_message

Функция обработки, которая вызывается асинхронно.The processing function that is called asynchronously. Она вымещает сообщения из очереди и начинает их обработку.It dequeues messages and begins processing them.

virtual void process_incoming_message();

sync_sendsync_send

Синхронно ставит в очередь сообщения и запускает задачу обработки, если это еще не сделано.Synchronously queues up messages and starts a processing task, if this has not been done already.

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

ПараметрыParameters

_Msg_Msg
Указатель на сообщение.A pointer to a message.

ожиданияwait

Ожидание конкретного процессора, используемое в деструкторах блоков сообщений, чтобы убедиться, что все задачи асинхронной обработки имеют время для завершения перед уничтожением блока.A processor-specific spin wait used in destructors of message blocks to make sure that all asynchronous processing tasks have time to finish before destroying the block.

virtual void wait();

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace