Класс unbounded_buffer

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

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

Параметры

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

Члены

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

Имя

Описание

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

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

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

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

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

Имя

Описание

Метод unbounded_buffer::dequeue

Удаляет элемент из блока сообщений unbounded_buffer.

Метод unbounded_buffer::enqueue

Добавляет элемент к блоку сообщений unbounded_buffer.

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

Имя

Описание

Метод unbounded_buffer::accept_message

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

Метод unbounded_buffer::consume_message

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

Метод unbounded_buffer::link_target_notification

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

Метод unbounded_buffer::propagate_message

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

Метод unbounded_buffer::propagate_to_any_targets

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

Метод unbounded_buffer::release_message

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

Метод unbounded_buffer::reserve_message

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

Метод unbounded_buffer::resume_propagation

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

Метод unbounded_buffer::send_message

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

Заметки

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

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

ISource

source_block

ITarget

propagator_block

unbounded_buffer

Требования

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

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

См. также

Ссылки

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

Класс overwrite_buffer

Класс single_assignment