Класс single_assignment
Блок сообщений single_assignment — многоцелевой, многоисточниковый, упорядоченный propagator_block, способный хранить одно записываемое один раз message.
template<
class _Type
>
class single_assignment : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;
Параметры
- _Type
Тип полезных данных сохраненного и распространенного буфером сообщения.
Члены
Открытые конструкторы
Name |
Описание |
---|---|
Перегружен. Создает блок сообщений single_assignment. |
|
Уничтожает блок сообщений single_assignment. |
Открытые методы
Name |
Описание |
---|---|
Проверяет, инициализирован ли этот блок обмена сообщениями single_assignment со значением. |
|
Возвращает ссылку на текущие полезную нагрузку сообщения, хранящуюся в блоке сообщений single_assignment. |
Защищенные методы
Name |
Описание |
---|---|
Принимает сообщение, предложенное этим блоком сообщений single_assignment, возвращая копию сообщения вызывающему объекту. |
|
Потребляет сообщение, ранее предложенное single_assignment и зарезервированное целевым объектом, возвращая копию сообщения вызывающему объекту. |
|
Обратный вызов, который уведомляет, что новая цель связана с этим блоком сообщений single_assignment. |
|
Асинхронно передает сообщение из блока ISource в этот блок сообщений single_assignment. Вызывается методом propagate при вызове исходного блока. |
|
Помещает message_PMessage в данный блок обмена сообщениями single_assignment и предлагает его всем связанным целевым объектам. |
|
Освобождает предыдущее резервирование сообщения. (Переопределяет конструктор source_block::release_message). |
|
Резервирует сообщение, которое было предложено этим блоком сообщений single_assignment. (Переопределяет конструктор source_block::reserve_message). |
|
Возобновляет распространение после отмены резервирования. (Переопределяет конструктор source_block::resume_propagation). |
|
Синхронно передает сообщение из блока ISource в этот блок сообщений single_assignment. Вызывается методом send при вызове исходного блока. |
Заметки
Блок сообщений single_assignment распространяет копии его сообщения для каждой цели.
Для получения дополнительной информации см. Асинхронные блоки сообщений.
Иерархия наследования
single_assignment
Требования
Заголовок: agents.h
Пространство имен: concurrency