aboutsummaryrefslogtreecommitdiff
path: root/include/User.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-04-28 15:31:27 +0200
committerdec05eba <dec05eba@protonmail.com>2018-04-28 15:31:33 +0200
commit9d84d5d8e7f61a02c01eef021ea5e8b2f49dcf8f (patch)
treec680f1d77e09d8333299d4098b0093240e138f91 /include/User.hpp
parent3b03f87070d91f63f0dc3c7152723727781dcccf (diff)
Connect channels to database, currently only locally
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;
};
}