![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Потокобезопасная очередь с поддержкой блокирующих операций - ожидает место при добавлении и ожидает элемент при получении. Подробнее...
#include <piblockingqueue.h>
Открытые члены | |
| PIBlockingQueue (size_t capacity=SIZE_MAX, PIConditionVariable *cond_var_add=new PIConditionVariable(), PIConditionVariable *cond_var_rem=new PIConditionVariable()) | |
| Создает очередь с емкостью capacity. Подробнее... | |
| PIBlockingQueue (const PIDeque< T > &other) | |
| Создает очередь из снимка other без синхронизации доступа к исходной очереди. | |
| PIBlockingQueue (PIBlockingQueue< T > &other) | |
| Создает очередь копированием другой блокирующей очереди с блокировкой обеих очередей. | |
| ~PIBlockingQueue () | |
| Уничтожает очередь и принадлежащие ей переменные условия. | |
| PIBlockingQueue< T > & | put (const T &v) |
| Добавляет v в конец, ожидая без ограничения по времени появления свободного места при заполненной очереди. | |
| PIBlockingQueue< T > & | enqueue (const T &v) |
| Псевдоним для put(). | |
| bool | offer (const T &v, PISystemTime timeout={}) |
| Пытается добавить v в конец очереди. Подробнее... | |
| T | take () |
| Удаляет и возвращает элемент из начала очереди, ожидая его появления без ограничения по времени. | |
| T | dequeue () |
| Псевдоним для take(). | |
| T | poll (PISystemTime timeout={}, const T &defaultVal=T(), bool *isOk=nullptr) |
| Пытается удалить и вернуть элемент из начала очереди. Подробнее... | |
| size_t | capacity () |
| Возвращает настроенный предел емкости. Подробнее... | |
| size_t | remainingCapacity () |
| Возвращает, сколько элементов еще можно вставить без блокировки в момент вызова. | |
| size_t | size () |
| Возвращает текущее количество элементов в очереди. | |
| size_t | drainTo (PIDeque< T > &other, size_t maxCount=SIZE_MAX) |
| Перемещает до maxCount доступных в данный момент элементов в деку other без ожидания. | |
| size_t | drainTo (PIBlockingQueue< T > &other, size_t maxCount=SIZE_MAX) |
| Перемещает до maxCount доступных в данный момент элементов в блокирующую очередь other без ожидания. Подробнее... | |
Потокобезопасная очередь с поддержкой блокирующих операций - ожидает место при добавлении и ожидает элемент при получении.
|
inlineexplicit |
Создает очередь с емкостью capacity.
Переданные переменные условия переходят во владение очереди и удаляются вместе с ней.
|
inline |
Пытается добавить v в конец очереди.
При пустом timeout метод однократно проверяет емкость и возвращается сразу.
|
inline |
Пытается удалить и вернуть элемент из начала очереди.
При пустом timeout метод проверяет очередь один раз и сразу возвращает defaultVal, если очередь пуста. \Если isOk не равен null, он получает значение true при успешном извлечении.
|
inline |
Возвращает настроенный предел емкости.
Для очереди без ограничения по умолчанию это значение равно SIZE_MAX.
|
inline |
Перемещает до maxCount доступных в данный момент элементов в блокирующую очередь other без ожидания.
Фактическое количество также ограничено оставшейся емкостью other.