diff --git a/include/spdlog/details/registry.h b/include/spdlog/details/registry.h index 3bb2eacd..45dbd94f 100644 --- a/include/spdlog/details/registry.h +++ b/include/spdlog/details/registry.h @@ -144,16 +144,23 @@ public: _async_mode = false; } - static registry_t* instance() + static std::shared_ptr > instance() { - static registry_t s_instance; - return &s_instance; + if(!_instance) + _instance = std::make_shared>(); + return _instance; + } + + static void set_registry(std::shared_ptr > registry) + { + _instance = registry; } -protected: registry_t() {} private: + static std::shared_ptr > _instance; + void register_logger_impl(std::shared_ptr logger) { auto logger_name = logger->name(); @@ -173,14 +180,13 @@ private: std::function _worker_warmup_cb = nullptr; std::chrono::milliseconds _flush_interval_ms; }; - -#ifndef SPDLOG_USE_SHARED_REGISTRY -# ifdef SPDLOG_NO_REGISTRY_MUTEX - typedef registry_t registry; +#ifdef SPDLOG_NO_REGISTRY_MUTEX +typedef registry_t registry; # else - typedef registry_t registry; -# endif //SPDLOG_NO_REGISTRY_MUTEX -#endif //SPDLOG_USE_SHARED_REGISTRY +typedef registry_t registry; +#endif //SPDLOG_NO_REGISTRY_MUTEX + +std::shared_ptr registry::_instance = nullptr; } } diff --git a/include/spdlog/details/registry_shared.h b/include/spdlog/details/registry_shared.h deleted file mode 100644 index d20c92bd..00000000 --- a/include/spdlog/details/registry_shared.h +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************/ -/* spdlog - an extremely fast and easy to use c++11 logging library. */ -/* Copyright (c) 2014 Gabi Melman. */ -/* */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the */ -/* "Software"), to deal in the Software without restriction, including */ -/* without limitation the rights to use, copy, modify, merge, publish, */ -/* distribute, sublicense, and/or sell copies of the Software, and to */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions: */ -/* */ -/* The above copyright notice and this permission notice shall be */ -/* included in all copies or substantial portions of the Software. */ -/* */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/*************************************************************************/ - -#pragma once - -#include "registry.h" - -namespace spdlog -{ -namespace details -{ -template class registry_shared_t : public registry_t -{ -public: - static std::shared_ptr > instance() - { - if(!_instance) - _instance = std::make_shared >(); - return _instance; - } - - static void set_registry(std::shared_ptr > registry) - { - _instance = registry; - } - - registry_shared_t() : registry_t() {} - -private: - static std::shared_ptr > _instance; -}; - -#ifdef SPDLOG_USE_SHARED_REGISTRY -# ifdef SPDLOG_NO_REGISTRY_MUTEX - typedef registry_shared_t registry; -# else - typedef registry_shared_t registry; -# endif //SPDLOG_NO_REGISTRY_MUTEX -#endif //SPDLOG_USE_SHARED_REGISTRY - -template -std::shared_ptr > registry_shared_t::_instance = nullptr; - -} -} diff --git a/include/spdlog/details/spdlog_impl.h b/include/spdlog/details/spdlog_impl.h index 49b3650f..cdbe1a94 100644 --- a/include/spdlog/details/spdlog_impl.h +++ b/include/spdlog/details/spdlog_impl.h @@ -28,7 +28,6 @@ // Global registry functions // #include "registry.h" -#include "registry_shared.h" #include "../sinks/file_sinks.h" #include "../sinks/stdout_sinks.h" #include "../sinks/syslog_sink.h" diff --git a/include/spdlog/tweakme.h b/include/spdlog/tweakme.h index c66e1e27..b651658b 100644 --- a/include/spdlog/tweakme.h +++ b/include/spdlog/tweakme.h @@ -72,9 +72,3 @@ // Note that upon creating a logger the registry is modified by spdlog.. // #define SPDLOG_NO_REGISTRY_MUTEX /////////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -// Uncomment to enable use of a shared registry -// #define SPDLOG_USE_SHARED_REGISTRY -///////////////////////////////////////////////////////////////////////////////