#pragma once #include "Signature.hpp" #include #include namespace odhtdb { class UserNameTooLongException : public std::runtime_error { public: UserNameTooLongException(const std::string &userName) : std::runtime_error(std::string("The username ") + userName + " is longer than 255 bytes") { } }; class User { public: virtual ~User(){} const std::string& getName() const { return name; } virtual const Signature::PublicKey& getPublicKey() const = 0; protected: User(const std::string &_name) : name(_name) { if(name.size() > 255) throw UserNameTooLongException(name); } private: std::string name; }; }