#include #include namespace scwx { namespace qt { namespace manager { static const std::string logPrefix_ = "scwx::qt::manager::font_manager"; static const auto logger_ = scwx::util::Logger::Create(logPrefix_); class FontManager::Impl { public: explicit Impl() {} ~Impl() {} }; FontManager::FontManager() : p(std::make_unique()) {} FontManager::~FontManager() {}; std::shared_ptr FontManager::Instance() { static std::weak_ptr fontManagerReference_ {}; static std::mutex instanceMutex_ {}; std::unique_lock lock(instanceMutex_); std::shared_ptr fontManager = fontManagerReference_.lock(); if (fontManager == nullptr) { fontManager = std::make_shared(); fontManagerReference_ = fontManager; } return fontManager; } } // namespace manager } // namespace qt } // namespace scwx