Класс overwrite_buffer

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

template<
   class _Type
>
class overwrite_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;

Параметры

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

Члены

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

Имя

Описание

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

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

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

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

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

Имя

Описание

Метод overwrite_buffer::has_value

Проверяет, имеет ли этот блок обмена сообщениями overwrite_buffer значение.

Метод overwrite_buffer::value

Возвращает ссылку на текущие полезную нагрузку сообщения, хранящуюся в блоке сообщений overwrite_buffer.

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

Имя

Описание

Метод overwrite_buffer::accept_message

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

Метод overwrite_buffer::consume_message

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

Метод overwrite_buffer::link_target_notification

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

Метод overwrite_buffer::propagate_message

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

Метод overwrite_buffer::propagate_to_any_targets

Помещает message_PMessage в данный блок обмена сообщениями overwrite_buffer и предлагает его всем связанным целевым объектам.

Метод overwrite_buffer::release_message

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

Метод overwrite_buffer::reserve_message

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

Метод overwrite_buffer::resume_propagation

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

Метод overwrite_buffer::send_message

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

Заметки

Блок сообщений overwrite_buffer распространяет копии своего сохраненного сообщения для каждого целевого объекта.

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

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

ISource

source_block

ITarget

propagator_block

overwrite_buffer

Требования

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

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

См. также

Ссылки

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

Класс unbounded_buffer

Класс single_assignment