Класс transformer

Блок сообщений transformer — одноцелевой многоисточниковый упорядоченный propagator_block, который может принимать сообщения одного типа и способен хранить неограниченное число сообщений другого типа.

template<
   class _Input,
   class _Output
>
class transformer : public propagator_block<single_link_registry<ITarget<_Output>>, multi_link_registry<ISource<_Input>>>;

Параметры

  • _Input
    Тип полезных данных сообщений, принятых буфером.

  • _Output
    Тип полезных данных сохраненных и распространенных из буфера сообщений.

Члены

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

Имя

Описание

Конструктор transformer::transformer

Перегружен. Создает блок сообщений transformer.

Деструктор transformer::~transformer

Уничтожает блок сообщений transformer.

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

Имя

Описание

Метод transformer::accept_message

Принимает сообщение, предложенное этим блоком сообщений transformer, передавая владение вызывающему объекту.

Метод transformer::consume_message

Потребляет сообщение, ранее предложенное transformer зарезервированное целевым объектом, передавая владение вызывающему объекту.

Метод transformer::link_target_notification

Обратный вызов, который уведомляет, что новая цель связана с этим блоком сообщений transformer.

Метод transformer::propagate_message

Асинхронно передает сообщение из блока ISource в этот блок сообщений transformer. Вызывается методом propagate при вызове исходного блока.

Метод transformer::propagate_to_any_targets

Выполняет функцию преобразователя на входное сообщение и пытается предложить результирующее сообщение всем связанным целевые объекты.

Метод transformer::release_message

Освобождает предыдущее резервирование сообщения. (Переопределяет конструктор source_block::release_message).

Метод transformer::reserve_message

Резервирует сообщение, которое было предложено этим блоком сообщений transformer. (Переопределяет конструктор source_block::reserve_message).

Метод transformer::resume_propagation

Возобновляет распространение после отмены резервирования. (Переопределяет конструктор source_block::resume_propagation).

Метод transformer::send_message

Синхронно передает сообщение из блока ISource в этот блок сообщений transformer. Вызывается методом send при вызове исходного блока.

Заметки

Дополнительные сведения см. в разделе Асинхронные блоки сообщений.

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

ISource

source_block

ITarget

propagator_block

transformer

Требования

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

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

См. также

Ссылки

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

Класс call