aboutsummaryrefslogtreecommitdiff
path: root/bridge/BridgeService.hpp
blob: e536c81b99ef25989d6188097c03c0a0a09ed37e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;
    };
}