LeviLamina
Loading...
Searching...
No Matches
Sink.h
1#pragma once
2
3#include <memory>
4
5#include "ll/api/data/IndirectValue.h"
6#include "ll/api/io/Formatter.h"
7
8namespace ll::io {
9class SinkBase : public std::enable_shared_from_this<SinkBase> {
10public:
11 virtual ~SinkBase() = default;
12
13 virtual void append(LogMessageView const& view) = 0;
14
15 virtual void flush() {}
16
17 virtual void setFormatter(Polymorphic<Formatter> fmter) = 0;
18
19 virtual void setFlushLevel(LogLevel) {}
20};
21class Sink : public SinkBase {
22protected:
23 Polymorphic<Formatter> formatter;
24
25public:
26 LLAPI Sink(Polymorphic<Formatter> formatter);
27
28 LLAPI virtual ~Sink();
29
30 LLAPI void setFormatter(Polymorphic<Formatter> fmter) override;
31};
32} // namespace ll::io
Definition IndirectValue.h:47
Definition Sink.h:9
Definition Sink.h:21
Definition LogMessage.h:12