From 7778f01194d84fae18827fd338299dd7482ef7c5 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Tue, 23 Apr 2024 01:27:08 +0100 Subject: managers: Add a TokenManager --- src/managers/TokenManager.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/managers/TokenManager.hpp (limited to 'src/managers/TokenManager.hpp') diff --git a/src/managers/TokenManager.hpp b/src/managers/TokenManager.hpp new file mode 100644 index 00000000..45b0679a --- /dev/null +++ b/src/managers/TokenManager.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include +#include +#include +#include +#include + +class CUUIDToken { + public: + CUUIDToken(const std::string& uuid_, std::any data_, std::chrono::system_clock::duration expires); + + std::string getUUID(); + + std::any data; + + private: + std::string uuid; + + std::chrono::system_clock::time_point expiresAt; + + friend class CTokenManager; +}; + +class CTokenManager { + public: + std::string registerNewToken(std::any data, std::chrono::system_clock::duration expires); + + std::shared_ptr getToken(const std::string& uuid); + void removeToken(std::shared_ptr token); + + private: + std::unordered_map> m_mTokens; +}; + +inline std::unique_ptr g_pTokenManager; \ No newline at end of file -- cgit v1.2.3