Класс propagator_block
Класс propagator_block является абстрактным базовым классом для блоков сообщений, которые одновременно исходные и целевые. Объединяет функциональные возможности обоих классов source_block и target_block.
template<
class _TargetLinkRegistry,
class _SourceLinkRegistry,
class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class propagator_block : public source_block<_TargetLinkRegistry, _MessageProcessorType>, public ITarget<typename _SourceLinkRegistry::type::source_type>;
Параметры
_TargetLinkRegistry
Реестр ссылок для использования для хранения целевых ссылок._SourceLinkRegistry
Реестр ссылок для использования для хранения исходных ссылок._MessageProcessorType
Тип процессора для обработки сообщений.
Члены
Общедоступные Typedefs
Имя |
Описание |
---|---|
source_iterator |
Тип итератора для source_link_manager для данного propagator_block. |
Открытые конструкторы
Имя |
Описание |
---|---|
Создает объект propagator_block. |
|
Удаляет объект propagator_block. |
Открытые методы
Имя |
Описание |
---|---|
Асинхронно передает сообщение из исходного блока данному целевому блоку. |
|
Синхронно вызывает сообщение на этот блок. Вызывается блоком ISource. По завершении этой функции сообщение уже будет распространено в блок. |
Защищенные методы
Имя |
Описание |
---|---|
Указывает блоку, что новые сообщения должны быть отклонены. |
|
Инициализирует базовый объект. В частности, объект message_processor необходимо инициализировать. |
|
Связывает указанный блок источника с данным объектом propagator_block. |
|
Обработка входного сообщения. Это полезно только для блоков распространения, которые являются производными от source_block (Переопределяет source_block::process_input_messages). |
|
При переопределении в производном классе этот метод асинхронно передает сообщение из блока ISource этому объекту propagator_block. Вызывается методом propagate при вызове исходного блока. |
|
Регистрирует метод фильтра, который будет вызван на каждое полученное сообщение. |
|
Удаляет все исходные и целевые сетевые ссылки из этого объекта propagator_block. |
|
При переопределении в производном классе этот метод синхронно передает сообщение из блока ISource этому объекту propagator_block. Вызывается методом send при вызове исходного блока. |
|
Удаляет связь указанного блока источника с данным объектом propagator_block. |
|
Удаляет связи всех блоков источника с данным объектом propagator_block. (Переопределяет ITarget::unlink_sources.) |
Заметки
Чтобы избежать множественное наследование, класс propagator_block класс наследуется от класса source_block и абстрактного класса ITarget. Большинство функциональных возможностей в классе target_block реплицируется здесь.
Иерархия наследования
propagator_block
Требования
Заголовок: agents.h
Пространство имен: concurrency