diff options
Diffstat (limited to 'src/User.cpp')
-rw-r--r-- | src/User.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/User.cpp b/src/User.cpp index aabfd0b..510f884 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -1,8 +1,10 @@ #include "../include/User.hpp" +#include <cassert> namespace dchat { const static std::string SYSTEM_USER_NAME = "System"; + const i64 USER_TIMEOUT_SEC = 25; User::User(Type _type) : type(_type) @@ -17,12 +19,18 @@ namespace dchat { } - + const std::string& OnlineUser::getName() const { return name; } + bool OnlineUser::isConnected(i64 timestampUtcSec) const + { + i64 pingTimeDiffSec = timestampUtcSec - (i64)pingTimestampSec; + return pingTimeDiffSec <= USER_TIMEOUT_SEC; + } + OnlineRemoteUser::OnlineRemoteUser(const std::string &name, const odhtdb::Signature::PublicKey &_publicKey) : OnlineUser(name, Type::ONLINE_REMOTE_USER), publicKey(_publicKey) @@ -41,11 +49,24 @@ namespace dchat { } - + const odhtdb::Signature::PublicKey& OnlineLocalUser::getPublicKey() const { return keyPair.getPublicKey(); } + + OnlineDiscordUser::OnlineDiscordUser(const std::string &discordUserName, u64 _discordUserId, User *_bridgeOwner) : + OnlineUser(discordUserName, Type::ONLINE_DISCORD_USER), + discordUserId(_discordUserId), + bridgeOwner(_bridgeOwner) + { + assert(bridgeOwner); + } + + const odhtdb::Signature::PublicKey& OnlineDiscordUser::getPublicKey() const + { + return odhtdb::Signature::PublicKey::ZERO; + } OfflineUser::OfflineUser(const std::string &_name) : User(Type::OFFLINE), |