#pragma once #include class Token { public: enum class CodeType { None = 0, Close = 1, Open = 2, Nerver = 3, }; public: explicit Token(const std::string& token) noexcept; explicit Token() noexcept; ~Token() noexcept; static Token FromConfig(); static Token FromServer(const std::string& token); bool SaveConfig() const; const std::string& GetToken(void) const noexcept { return m_token; } std::string encode() const; bool decode(const std::string& str); bool DecodeFromJson(const std::string& token); bool IsValide() const { return !m_token.empty(); } void SetCode(CodeType code) { m_code = code; } CodeType GetCode() const { return m_code; } private: std::string m_token; CodeType m_code = CodeType::None; };