diff options
Diffstat (limited to 'thirdparty/spdlog/details/log_msg_buffer.h')
-rw-r--r-- | thirdparty/spdlog/details/log_msg_buffer.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/thirdparty/spdlog/details/log_msg_buffer.h b/thirdparty/spdlog/details/log_msg_buffer.h new file mode 100644 index 00000000..4410110f --- /dev/null +++ b/thirdparty/spdlog/details/log_msg_buffer.h @@ -0,0 +1,33 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include <spdlog/details/log_msg.h> + +namespace spdlog { +namespace details { + +// Extend log_msg with internal buffer to store its payload. +// This is needed since log_msg holds string_views that points to stack data. + +class SPDLOG_API log_msg_buffer : public log_msg +{ + memory_buf_t buffer; + void update_string_views(); + +public: + log_msg_buffer() = default; + explicit log_msg_buffer(const log_msg &orig_msg); + log_msg_buffer(const log_msg_buffer &other); + log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT; + log_msg_buffer &operator=(const log_msg_buffer &other); + log_msg_buffer &operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT; +}; + +} // namespace details +} // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "log_msg_buffer-inl.h" +#endif |