From 5721debdf14d3478067b1629b3c42cee0c90b013 Mon Sep 17 00:00:00 2001 From: gabime Date: Thu, 19 Sep 2019 11:52:03 +0300 Subject: [PATCH] split to log_msg_buffer.h ito header and mpl --- include/spdlog/details/log_msg_buffer-inl.h | 63 +++++++++++++++++++++ include/spdlog/details/log_msg_buffer.h | 57 ++++--------------- src/spdlog.cpp | 1 + 3 files changed, 76 insertions(+), 45 deletions(-) create mode 100644 include/spdlog/details/log_msg_buffer-inl.h diff --git a/include/spdlog/details/log_msg_buffer-inl.h b/include/spdlog/details/log_msg_buffer-inl.h new file mode 100644 index 00000000..5658a489 --- /dev/null +++ b/include/spdlog/details/log_msg_buffer-inl.h @@ -0,0 +1,63 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#ifndef SPDLOG_HEADER_ONLY +#include "spdlog/details/log_msg_buffer.h" +#endif + +namespace spdlog { +namespace details { + + SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg &orig_msg) + : log_msg{orig_msg} + { + buffer.append(logger_name.begin(), logger_name.end()); + buffer.append(payload.begin(), payload.end()); + update_string_views(); + } + + + + + SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg_buffer &other) + : log_msg{other} + { + buffer.append(logger_name.begin(), logger_name.end()); + buffer.append(payload.begin(), payload.end()); + update_string_views(); + } + + SPDLOG_INLINE log_msg_buffer:: log_msg_buffer(log_msg_buffer &&other) + : log_msg{std::move(other)} + , buffer{std::move(other.buffer)} + { + update_string_views(); + } + + SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(const log_msg_buffer &other) + { + log_msg::operator=(other); + buffer.append(other.buffer.data(), other.buffer.data() + other.buffer.size()); + update_string_views(); + return *this; + } + + SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(log_msg_buffer &&other) + { + log_msg::operator=(std::move(other)); + buffer = std::move(other.buffer); + update_string_views(); + return *this; + } + + + SPDLOG_INLINE void log_msg_buffer::update_string_views() + { + logger_name = string_view_t{buffer.data(), logger_name.size()}; + payload = string_view_t{logger_name.end(), payload.size()}; + } + +} // namespace details +} // namespace spdlog diff --git a/include/spdlog/details/log_msg_buffer.h b/include/spdlog/details/log_msg_buffer.h index e23f28e8..c9c71f5d 100644 --- a/include/spdlog/details/log_msg_buffer.h +++ b/include/spdlog/details/log_msg_buffer.h @@ -4,7 +4,6 @@ #pragma once #include "spdlog/details/log_msg.h" -#include "spdlog/fmt/fmt.h" namespace spdlog { namespace details { @@ -15,54 +14,22 @@ namespace details { class log_msg_buffer : public log_msg { memory_buf_t buffer; - void update_string_views() - { - logger_name = string_view_t{buffer.data(), logger_name.size()}; - payload = string_view_t{logger_name.end(), payload.size()}; - } + void update_string_views(); public: log_msg_buffer() = default; - - explicit log_msg_buffer(const log_msg &orig_msg) - : log_msg{orig_msg} - { - buffer.append(logger_name.begin(), logger_name.end()); - buffer.append(payload.begin(), payload.end()); - update_string_views(); - } - - log_msg_buffer(const log_msg_buffer &other) - : log_msg{other} - { - buffer.append(logger_name.begin(), logger_name.end()); - buffer.append(payload.begin(), payload.end()); - update_string_views(); - } - - log_msg_buffer(log_msg_buffer &&other) - : log_msg{std::move(other)} - , buffer{std::move(other.buffer)} - { - update_string_views(); - } - - log_msg_buffer &operator=(const log_msg_buffer &other) - { - log_msg::operator=(other); - buffer.append(other.buffer.data(), other.buffer.data() + other.buffer.size()); - update_string_views(); - return *this; - } - - log_msg_buffer &operator=(log_msg_buffer &&other) - { - log_msg::operator=(std::move(other)); - buffer = std::move(other.buffer); - update_string_views(); - return *this; - } + explicit log_msg_buffer(const log_msg &orig_msg); + log_msg_buffer(const log_msg_buffer &other); + log_msg_buffer(log_msg_buffer &&other); + log_msg_buffer &operator=(const log_msg_buffer &other); + log_msg_buffer &operator=(log_msg_buffer &&other); + }; } // namespace details } // namespace spdlog + +#ifdef SPDLOG_HEADER_ONLY +#include "log_msg_buffer-inl.h" +#endif + diff --git a/src/spdlog.cpp b/src/spdlog.cpp index f8571537..c079de39 100644 --- a/src/spdlog.cpp +++ b/src/spdlog.cpp @@ -12,6 +12,7 @@ #include "spdlog/details/os-inl.h" #include "spdlog/details/pattern_formatter-inl.h" #include "spdlog/details/log_msg-inl.h" +#include "spdlog/details/log_msg_buffer-inl.h" #include "spdlog/logger-inl.h" #include "spdlog/sinks/sink-inl.h"