-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathclient.h
52 lines (42 loc) · 1.17 KB
/
client.h
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
42
43
44
45
46
47
48
49
50
51
52
#ifndef CLIENT_H
#define CLIENT_H
#include "server.h"
#include "connection.h"
class Client : public QObject
{
Q_OBJECT
public:
explicit Client(QObject *parent = 0);
int getServerPort();
~Client();
signals:
void establishedConnection(bool isMaster);
void closedConnection();
void logMessage(QString entry, Qt::GlobalColor backgroundColor = Qt::white);
void receiveData(quint8 type, QVariant data = QVariant());
public slots:
void initiateConnection(QString host, int port, bool isMaster);
void removeConnection();
void sendData(quint8 type, QVariant data = QVariant());
private slots:
void incomingConnection(Connection *incomingConnection);
void startHandShake();
void handleData(Connection::PackageType type, QVariant data);
private:
enum ConnectionState {
CSunconnected,
CSinitiatedConnection,
CSwait4Handshake,
CSready
};
Server server;
/*
Connection *receivingConnection;
Connection *sendingConnection;
*/
Connection *connection;
Connection *setupConnection(Connection *connection = 0);
bool isMaster;
ConnectionState status;
};
#endif // CLIENT_H