LeviLamina
Loading...
Searching...
No Matches
LogMessage.h
1#pragma once
2
3#include <string>
4#include <string_view>
5#include <utility>
6
7#include "ll/api/base/StdInt.h"
8#include "ll/api/data/TmWithMs.h"
9#include "ll/api/io/LogLevel.h"
10
11namespace ll::io {
13 std::string_view msg;
14 std::string_view tit;
15 LogLevel lvl;
17
18 constexpr LogMessageView(std::string_view msg, std::string_view tit, LogLevel lvl, data::TmWithMs const& tm)
19 : msg(msg),
20 tit(tit),
21 lvl(lvl),
22 tm(tm) {}
23};
24struct LogMessage : public LogMessageView {
25 std::string msgBuffer;
26 std::string titBuffer;
27 constexpr LogMessage() : LogMessageView({}, {}, {}, {}) {}
28
29 LogMessage(LogMessage&& other)
30 : LogMessageView({}, {}, other.lvl, other.tm),
31 msgBuffer(std::move(other.msgBuffer)),
32 titBuffer(std::move(other.titBuffer)) {
33 msg = msgBuffer;
34 tit = titBuffer;
35 }
36 LogMessage(LogMessage const& other)
37 : LogMessageView({}, {}, other.lvl, other.tm),
38 msgBuffer(other.msgBuffer),
39 titBuffer(other.titBuffer) {
40 msg = msgBuffer;
41 tit = titBuffer;
42 }
43
44 constexpr LogMessage(std::string msg, std::string_view tit, LogLevel lvl, data::TmWithMs const& tm)
45 : LogMessageView({}, {}, lvl, tm),
46 msgBuffer(std::move(msg)),
47 titBuffer(tit) {
48 this->msg = msgBuffer;
49 this->tit = titBuffer;
50 }
51};
52} // namespace ll::io
Definition TmWithMs.h:10
Definition LogMessage.h:12
Definition LogMessage.h:24