aboutsummaryrefslogtreecommitdiff
path: root/src/User.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/User.cpp')
-rw-r--r--src/User.cpp25
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),