![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template asynchronous_sinkBoost , Chapter 1. Boost.Log v2 , Sinks
|
Параметры: |
|
Parameters: |
| ||||
Требуется: | backend is not |
template<typename...Args>explicitasynchronous_sink(Args&&...args);>
Конструктор, который передает произвольные именованные параметры конструатору межпроцессного опускания. Обратитесь к справочной документации для списка поддерживаемых параметров.
Фронтенд использует следующие названные параметры:
start_thread — Если<true
>, фронтенд создает поток для подачи записей журнала на бэкэнд. В противном случае нить не запускается, и предполагается, что пользователь позвонит либо<run
>, либо<feed_records
>сам.
~asynchronous_sink();>
Разрушитель. Неявно останавливает выделенную нить питания, если она запущена.
asynchronous_sink
public member functionslocked_backend_ptrlocked_backend();>
Запирающий аксессуар на прикрепленном бэкэнде
virtualvoidconsume(record_viewconst&rec);>
Очередь записи журнала на бэкэнд
virtualbooltry_consume(record_viewconst&rec);>
Метод пытается передать запись журнала на бэкэнд
voidrun();>
Метод запускает цикл подачи записи и эффективно блокирует до тех пор, пока не произойдет любое из этих событий:
нить прерывается из-за либо стандартного прерывания нити, либо вызова<stop
>
Исключение выбрасывается при обработке записи журнала в бэкэнде, и исключение не прекращается обработчиком исключения, если оно установлено
.Требуется: | Фронт раковины должен быть построен без нереста выделенной нити |
voidstop();>
Метод мягко прерывает цикл подачи записи. Этот метод должен быть назван, когда выполнение метода<run
>должно быть прервано. В отличие от обычного прерывания потока, вызов<stop
>не прерывает обработку записи в середине. Вместо этого фронтенд раковины попытается завершить свой бизнес с записью в процессе и вернуться после этого. Этот способ можно назвать либо если раковина была создана выделенной нитью, либо если цикл подачи был инициирован пользователем.
![]() | Примечание |
---|---|
Возвращение с этого метода не гарантирует, что в фронтенде раковины не осталось никаких записей. Вполне возможно, что записи журналов продолжают поступать во время и после того, как этот метод называется. В какой-то момент выполнения этого метода записи журнала перестают обрабатываться, и все записи, которые приходят после этого момента, помещаются в очередь. Эти записи будут обрабатываться при дальнейших звонках< |
void feed_records();
The method feeds log records that may have been buffered to the backend and returns
Требуется: | Фронт раковины должен быть построен без нереста выделенной нити |
virtualvoidflush();>
Метод подает все записи журнала, которые, возможно, были буферизованы на бэкэнд и возвраты. В отличие от<feed_records
>, в случае заказа очередей способ также подает записи, которые были поставлены в очередь во время окна заказа, пытаясь полностью опорожнить очередь.
Статья Class template asynchronous_sink раздела Chapter 1. Boost.Log v2 Sinks может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |