diff options
Diffstat (limited to 'include/User.hpp')
-rw-r--r-- | include/User.hpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/include/User.hpp b/include/User.hpp index 2a8f46b..e9e334a 100644 --- a/include/User.hpp +++ b/include/User.hpp @@ -2,13 +2,37 @@ #include <string> +namespace odhtdb +{ + class User; +} + namespace dchat { class User { public: + enum class Type + { + ONLINE, + OFFLINE, + SYSTEM + }; + + User(Type type); virtual ~User(){} virtual const std::string& getName() const = 0; + + const Type type; + }; + + class OnlineUser : public User + { + public: + OnlineUser(const odhtdb::User *databaseUser); + virtual const std::string& getName() const override; + + const odhtdb::User *databaseUser; }; class OfflineUser : public User @@ -16,7 +40,14 @@ namespace dchat public: OfflineUser(const std::string &name); virtual const std::string& getName() const override; - - std::string name; + + const std::string name; + }; + + class SystemUser : public User + { + public: + SystemUser(); + virtual const std::string& getName() const override; }; } |