#pragma once #include #include #include #include "../helpers/memory/Memory.hpp" #include "../helpers/time/Time.hpp" class CUUIDToken { public: CUUIDToken(const std::string& uuid_, std::any data_, Time::steady_dur expires); std::string getUUID(); std::any m_data; private: std::string m_uuid; Time::steady_tp m_expiresAt; friend class CTokenManager; }; class CTokenManager { public: std::string registerNewToken(std::any data, std::chrono::steady_clock::duration expires); std::string getRandomUUID(); SP getToken(const std::string& uuid); void removeToken(SP token); private: std::unordered_map> m_mTokens; }; inline UP g_pTokenManager;