Класс 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. |
|
Асинхронно передает сообщение из блока ISource в этот блок сообщений overwrite_buffer. Вызывается методом propagate при вызове исходного блока. |
|
Помещает message_PMessage в данный блок обмена сообщениями overwrite_buffer и предлагает его всем связанным целевым объектам. |
|
Освобождает предыдущее резервирование сообщения. (Переопределяет конструктор source_block::release_message). |
|
Резервирует сообщение, которое было предложено этим блоком сообщений overwrite_buffer. (Переопределяет конструктор source_block::reserve_message). |
|
Возобновляет распространение после отмены резервирования. (Переопределяет конструктор source_block::resume_propagation). |
|
Синхронно передает сообщение из блока ISource в этот блок сообщений overwrite_buffer. Вызывается методом send при вызове исходного блока. |
|
Переопределяет метод supports_anonymous_source, чтобы показать, что данный блок может принимать сообщения, предоставляемые ему несвязанным источником. (Переопределяет метод ITarget::supports_anonymous_source). |
Заметки
Блок сообщений overwrite_buffer распространяет копии своего сохраненного сообщения для каждого целевого объекта.
Для получения дополнительной информации см. Асинхронные блоки сообщений.
Иерархия наследования
overwrite_buffer
Требования
Заголовок: agents.h
Пространство имен: concurrency