// Copyright (C) 2015 Jérôme Leclercq // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_OBJECTLIBRARY_HPP #define NAZARA_OBJECTLIBRARY_HPP #include #include #include #include template class NzObjectLibrary { friend Type; public: NzObjectLibrary() = delete; ~NzObjectLibrary() = delete; static NzObjectRef Get(const NzString& name); static bool Has(const NzString& name); static void Register(const NzString& name, NzObjectRef object); static NzObjectRef Query(const NzString& name); static void Unregister(const NzString& name); private: static bool Initialize(); static void Uninitialize(); using LibraryMap = std::unordered_map>; }; #include #endif // NAZARA_OBJECTLIBRARY_HPP