// SPDX-FileCopyrightText: Matteo Settenvini // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include namespace malcontent { class CAresLibrary { struct Private {}; public: static auto instance() -> std::shared_ptr; CAresLibrary(Private); ~CAresLibrary() noexcept; CAresLibrary(const CAresLibrary&) = delete; CAresLibrary(CAresLibrary&&) = delete; private: static std::mutex _init_mutex; static std::weak_ptr _instance; }; } // ~ namespace malcontent