-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtcpsocket.h
65 lines (56 loc) · 1.8 KB
/
tcpsocket.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
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef TCPSOCKET_H
#define TCPSOCKET_H
#include <QObject>
#include <QTcpSocket>
#include <QDateTime>
#include "common/packet.h"
#include "common/packets/master_user.h"
#include "common/packets/slave_user.h"
#include "common/types.h"
#include <netinet/in.h>
#include <QtCore>
using namespace YAIC;
class tcpSocket: public QObject
{
Q_OBJECT
public:
tcpSocket(QObject *parent = 0);
void getSlavesPort();
bool connectWith(QString address, int port, Packet::Direction direction);
void write(Packet *p);
void disconnect();
bool isConnected();
signals:
void serversRead(MasterUserPackets::ServerList *p);
void handshakeAck(SlaveUserPackets::HandshakeAck *p);
void channels(SlaveUserPackets::Channels *p);
void channelJoined(SlaveUserPackets::ChannelJoined *p);
void channelParted(SlaveUserPackets::ChannelParted *p);
void channelMessage(SlaveUserPackets::ChannelMessage *p);
void channelUserJoined(SlaveUserPackets::ChannelUserJoined *p);
void channelUserPatred(SlaveUserPackets::ChannelUserParted *p);
void userDisconnected(SlaveUserPackets::UserDisconnected *p);
void channelUserUpdated(SlaveUserPackets::ChannelUserUpdated *p);
void userUpdated(SlaveUserPackets::UserUpdated *p);
void privateMessageReceived(SlaveUserPackets::PrivateMessageReceived *p);
void serverDisconnected();
public slots:
void readyRead();
void sendHeartbeat();
void heartbeatTimeExpired();
private:
int port;
QString address;
QTcpSocket *socket;
PacketHeader packetHeader;
qint64 readLength;
qint64 readHeaderLength;
Vector<char> bufferedData;
bool isReadingPayload;
QTimer *timerUserHeartbeat;
QTimer *timerSlaveHeartbeat;
Packet::Direction dir;
QDateTime lastReceivedPacketTime;
bool connected;
};
#endif // TCPSOCKET_H