Class template unbounded_ordering_queue
boost::log::sinks::unbounded_ordering_queue — Unbounded ordering log record queueing strategy.
Synopsis
Description
Класс<unbounded_ordering_queue
>предназначен для использования с фронтендом<asynchronous_sink
>в качестве стратегии постановки в очередь.
Эта стратегия обеспечивает следующие свойства механизма очередей записей:
Очередь не имеет ограничений по размеру.
Очередь имеет фиксированное окно задержки. Это означает, что каждая запись журнала, помещенная в очередь, как правило, не будет очерчена в течение определенного периода времени.
Очередь выполняет стабильный порядок записи в окне задержки. Предикат упорядочения может быть указан в параметре шаблона<OrderT
>.
Поскольку эта очередь не имеет ограничений по размеру, она может расти бесконтрольно, если опускание бэкэндов не достаточно быстро. Когда это проблема, рекомендуется использовать одну из ограниченных стратегий.
unbounded_ordering_queue
public
construct/copy/destruct
- <
template<typenameArgsT>explicitunbounded_ordering_queue(ArgsTconst&args);
>Начало строительства.
unbounded_ordering_queue
public member functions
- <
posix_time::time_durationget_ordering_window()const;
>Размер окна заказа возврата, указанный при инициализации
unbounded_ordering_queue
public static functions
- <
staticposix_time::time_durationget_default_ordering_window();
>Возвращает размер окна по умолчанию. Размер окна по умолчанию специфичен для механизма планирования потоков операционной системы.
unbounded_ordering_queue
protected member functions
- <
voidenqueue(record_viewconst&rec);
>Запись очередей в очередь.
- <
booltry_enqueue(record_viewconst&rec);
>Попытки записать запись в очередь.
- <
booltry_dequeue_ready(record_view&rec);
>Попытки очередей записи журнала, готовой к обработке из очереди, не блокируются, если никакие записи журнала не готовы к обработке.
- <
booltry_dequeue(record_view&rec);
>Попытки очередей записи журнала из очереди, не блокируют.
- <
booldequeue_ready(record_view&rec);
>Очередь записи журнала из очереди, блоки, если записи журнала не готовы к обработке.
- <
voidinterrupt_dequeue();
>Пробуждает нить, возможно, заблокированную в<dequeue
>методе.
unbounded_ordering_queue
private member functions
- <
voidenqueue_unlocked(record_viewconst&rec);
>Завершает запись.