Класс choice

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

template<
   class _Type
>
class choice: public ISource<size_t>;

Параметры

  • _Type
    Тип, основанный на tuple, представляющий полезные нагрузки входных источников.

Члены

Открытые определения типов

Имя

Описание

type

Псевдоним типа для _Type.

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

Имя

Описание

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

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

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

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

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

Имя

Описание

Метод choice::accept

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

Метод choice::acquire_ref

Получает значение счетчика ссылок на этот блок сообщений для choice, чтобы предотвратить удаление.

Метод choice::consume

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

Метод choice::has_value

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

Метод choice::index

Возвращает индекс в tuple, представляющий элемент, отобранный блоком сообщений choice.

Метод choice::link_target

Связывает целевой блок с этим блоком сообщений choice.

Метод choice::release

Освобождает предыдущее успешное резервирование сообщения.

Метод choice::release_ref

Освобождает значение счетчика ссылок на этот блок сообщений choice.

Метод choice::reserve

Резервирует сообщение, которое было предложено этим блоком сообщений choice.

Метод choice::unlink_target

Удаляет связь целевого блока с этим блоком сообщений choice.

Метод choice::unlink_targets

Удаляет связь всех целевых объектов с этим блоком сообщений choice. (Переопределяет ISource::unlink_targets.)

Метод choice::value

Получает сообщение, индекс которого был выбран блоком сообщений choice.

Заметки

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

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

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

ISource

choice

Требования

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

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

См. также

Ссылки

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

Класс join

Класс single_assignment

Функция make_choice

tuple Class