forked from CPP-Final-Project/Chat_Server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserController.h
More file actions
40 lines (27 loc) · 1019 Bytes
/
UserController.h
File metadata and controls
40 lines (27 loc) · 1019 Bytes
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
#pragma once
#include <QObject>
#include "RoomController.h"
#include "MessageController.h"
class UserController : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(UserController)
public:
explicit UserController(QObject* parent_ = nullptr);
~UserController() override;
static QSharedPointer<UserController> instance();
private:
signals:
void jsonReceived(QSharedPointer<SrvUser> sender_, const QJsonObject& doc_);
//void broadcastSend(const QJsonObject& message_, const QSharedPointer<SrvRoom> room_, const QSharedPointer<SrvUser> exclude_);
public slots:
void addConnection(qintptr socket_descriptor_);
void disableUsers();
QSet<QSharedPointer<SrvUser>> getUsersList() const; //TODO remove from rerver with connected_users prop.
private slots:
void userDisconnected(QSharedPointer<SrvUser> sender_);
void userError(const QSharedPointer<SrvUser> sender_);
private:
inline static QSharedPointer<UserController> shp_instance{};
QSet<QSharedPointer<SrvUser>> connected_users;
};