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


Класс 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
    Тип полезных данных сохраненных и распространенных из буфера сообщений.

Члены

Dd492812.collapse_all(ru-ru,VS.110).gifОткрытые конструкторы

Имя

Описание

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

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

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

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

Dd492812.collapse_all(ru-ru,VS.110).gifЗащищенные методы

Имя

Описание

Метод 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 в сообщениях ввода.

Метод 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 при вызове исходного блока.

Метод transformer::supports_anonymous_source

Переопределяет метод supports_anonymous_source, чтобы показать, что этот блок сообщений может принять предлагаемые к нему источника, который не связан.Переопределяет ITarget::supports_anonymous_source().

Заметки

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

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

ISource

ITarget

source_block

propagator_block

transformer

Требования

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

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

См. также

Ссылки

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

Класс call