aboutsummaryrefslogtreecommitdiff
path: root/bridge/BridgeService.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'bridge/BridgeService.hpp')
-rw-r--r--bridge/BridgeService.hpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/bridge/BridgeService.hpp b/bridge/BridgeService.hpp
new file mode 100644
index 0000000..e536c81
--- /dev/null
+++ b/bridge/BridgeService.hpp
@@ -0,0 +1,41 @@
+#pragma once
+
+#include <vector>
+#include <string>
+#include "../include/User.hpp"
+
+namespace dchat
+{
+ class BridgeServiceUser : public User
+ {
+ public:
+ enum class Type
+ {
+ DISCORD
+ };
+
+ BridgeServiceUser(Type type, const std::string &name);
+ virtual ~BridgeServiceUser(){}
+
+ virtual const std::string& getName() const override { return name; }
+ virtual bool isConnected(i64 timestampUtcSec) const override { return true; }
+
+ virtual bool equals(BridgeServiceUser *other) const = 0;
+
+ const Type type;
+ private:
+ std::string name;
+ };
+
+ class BridgeService
+ {
+ public:
+ BridgeService();
+ virtual ~BridgeService();
+
+ bool addUser(BridgeServiceUser *user);
+ const std::vector<User*>& getUsers() const;
+ protected:
+ std::vector<User*> users;
+ };
+} \ No newline at end of file