/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/logger/thread.h
34 строки
1 KB
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once #include "backend.h" #include <util/generic/ptr.h> #include <functional> class TThreadedLogBackend: public TLogBackend { public: TThreadedLogBackend(TLogBackend* slave); TThreadedLogBackend(TLogBackend* slave, size_t queuelen, std::function<void()> queueOverflowCallback = {}); ~TThreadedLogBackend() override; void WriteData(const TLogRecord& rec) override; void ReopenLog() override; void ReopenLogNoFlush() override; size_t QueueSize() const override; // Write an emergency message when the memory allocator is corrupted. // The TThreadedLogBackend object can't be used after this method is called. void WriteEmergencyData(const TLogRecord& rec); private: class TImpl; THolder<TImpl> Impl_; }; class TOwningThreadedLogBackend: private THolder<TLogBackend>, public TThreadedLogBackend { public: TOwningThreadedLogBackend(TLogBackend* slave); TOwningThreadedLogBackend(TLogBackend* slave, size_t queuelen, std::function<void()> queueOverflowCallback = {}); ~TOwningThreadedLogBackend() override; };