Класс choice
Блок сообщений choice — многоисточниковый одноцелевой блок, который представляет взаимодействие потока управления с набором источников. Блок выбора будет ожидать любой из нескольких источников для создания сообщения и распространит индекс источника, создавшего сообщение.
template<
class _Type
>
class choice: public ISource<size_t>;
Параметры
- _Type
Тип, основанный на tuple, представляющий полезные нагрузки входных источников.
Члены
Общедоступные Typedefs
Name |
Описание |
---|---|
type |
Псевдоним типа для _Type. |
Открытые конструкторы
Name |
Описание |
---|---|
Перегружен. Создает блок сообщений choice. |
|
Уничтожает блок сообщений choice. |
Открытые методы
Name |
Описание |
---|---|
Принимает сообщение, предложенное этим блоком choice, передавая владение вызывающему объекту. |
|
Получает значение счетчика ссылок на этот блок сообщений для choice, чтобы предотвратить удаление. |
|
Потребляет сообщение, ранее предложенное данным блоком сообщений choice и успешно зарезервированное целевым объектом, передавая владение вызывающему объекту. |
|
Проверяет, инициализирован ли этот блок обмена сообщениями choice со значением. |
|
Возвращает индекс в tuple, представляющий элемент, отобранный блоком сообщений choice. |
|
Связывает целевой блок с этим блоком сообщений choice. |
|
Освобождает предыдущее успешное резервирование сообщения. |
|
Освобождает значение счетчика ссылок на этот блок сообщений choice. |
|
Резервирует сообщение, которое было предложено этим блоком сообщений choice. |
|
Удаляет связь целевого блока с этим блоком сообщений choice. |
|
Удаляет связь всех целевых объектов с этим блоком сообщений choice. (Переопределяет ISource::unlink_targets.) |
|
Получает сообщение, индекс которого был выбран блоком сообщений choice. |
Заметки
Блок выбора гарантирует, что только одно из входящих сообщений будет потреблено.
Для получения дополнительной информации см. Асинхронные блоки сообщений.
Иерархия наследования
choice
Требования
Заголовок: agents.h
Пространство имен: concurrency