Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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.) |
Иерархия наследования
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();