diff options
Diffstat (limited to 'include/User.hpp')
-rw-r--r-- | include/User.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/User.hpp b/include/User.hpp index c2874c2..7e99c60 100644 --- a/include/User.hpp +++ b/include/User.hpp @@ -11,8 +11,10 @@ namespace dchat public: enum class Type { + OTHER, ONLINE_REMOTE_USER, ONLINE_LOCAL_USER, + ONLINE_DISCORD_USER, OFFLINE, SYSTEM }; @@ -21,6 +23,8 @@ namespace dchat virtual ~User(){} virtual const std::string& getName() const = 0; virtual bool isOnlineUser() const { return false; } + + virtual bool isConnected(i64 timestampUtcSec) const { return true; } const Type type; std::string avatarUrl; @@ -35,6 +39,7 @@ namespace dchat virtual const std::string& getName() const override; virtual const odhtdb::Signature::PublicKey& getPublicKey() const = 0; + bool isConnected(i64 timestampUtcSec) const override; bool isOnlineUser() const override { return true; } std::string name; @@ -58,6 +63,16 @@ namespace dchat const odhtdb::Signature::KeyPair keyPair; }; + + class OnlineDiscordUser : public OnlineUser + { + public: + OnlineDiscordUser(const std::string &discordUserName, u64 discordUserId, User *bridgeOwner); + virtual const odhtdb::Signature::PublicKey& getPublicKey() const override; + + u64 discordUserId; + User *bridgeOwner; + }; class OfflineUser : public User { |