#pragma once #include #include #include class ModelManager { public: class StaticModel { //DATA }; struct owner_counter { std::atomic_ullong counter; StaticModel* model; owner_counter() = default; owner_counter(const owner_counter& other); }; private: std::unordered_map models; static unsigned int FNV1aHash (const char *buf); public: ~ModelManager(); StaticModel* LoadModel(const std::string& name); void FreeModel(const std::string& name); };