aboutsummaryrefslogtreecommitdiff
path: root/src/User.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2018-08-08 23:17:10 +0200
committerdec05eba <dec05eba@protonmail.com>2018-08-08 23:17:14 +0200
commit06f30543730c372226c398c11b3de0213d711d13 (patch)
treed6229ff224a9e7e5457c856747c2f8726e7a3868 /src/User.cpp
parent26edc563cb0ba1a9fb35507e7f32d2d43a845e68 (diff)
Add support for discord
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),