Line | Count | Source |
1 | // Copyright(c) 2015-present, Gabi Melman & spdlog contributors. | |
2 | // Distributed under the MIT License (http://opensource.org/licenses/MIT) | |
3 | ||
4 | #pragma once | |
5 | ||
6 | #include <spdlog/details/log_msg.h> | |
7 | ||
8 | namespace spdlog { | |
9 | namespace details { | |
10 | ||
11 | // Extend log_msg with internal buffer to store its payload. | |
12 | // This is needed since log_msg holds string_views that points to stack data. | |
13 | ||
14 | class SPDLOG_API log_msg_buffer : public log_msg { | |
15 | memory_buf_t buffer; | |
16 | void update_string_views(); | |
17 | ||
18 | public: | |
19 | 34.9M | log_msg_buffer() = default; |
20 | explicit log_msg_buffer(const log_msg &orig_msg); | |
21 | log_msg_buffer(const log_msg_buffer &other); | |
22 | log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT; | |
23 | log_msg_buffer &operator=(const log_msg_buffer &other); | |
24 | log_msg_buffer &operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT; | |
25 | }; | |
26 | ||
27 | } // namespace details | |
28 | } // namespace spdlog | |
29 | ||
30 | #ifdef SPDLOG_HEADER_ONLY | |
31 | #include "log_msg_buffer-inl.h" | |
32 | #endif |