aboutsummaryrefslogtreecommitdiff
path: root/include/User.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/User.hpp')
-rw-r--r--include/User.hpp35
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;
};
}