CCIMXDesktop
 
Loading...
Searching...
No Matches
Session.h
1#ifndef SESSION_H
2#define SESSION_H
3#include "SessionInfo.h"
4#include <QObject>
5
8class DataSinker;
9class ISinkerRouter;
10
11class Session : public QObject {
12 Q_OBJECT
13public:
14 explicit Session(PeerConnection* transport,
15 const SessionInfo& localName,
16 QObject* parent = nullptr);
17 ~Session() override;
18 int port_running() const;
19 std::pair<QString, int> peerInfo() const;
20 SessionInfo localName() const { return localInfo; }
21 SessionInfo remoteName() const { return remoteInfo; }
22
23 void sendText(const QString& text);
24 void sendImage(const QImage& image);
25 void sendFile(const QString& filePath);
26
27 QString sessionID() const;
28
29signals:
30 void textReceived(const QString& text);
31 void imageReceived(const QImage& okImage);
32 void fileReceived(const QString& fileSaveAt);
33
34 void connected(Session* s);
35 void ready(Session* s, const SessionInfo& remoteName);
36 void disconnected(Session* s);
37 void error(Session* s, const QString& disp, int code);
38
39 void sendProgress(Session* s, quint64 sent, quint64 total);
40 void receiveProgress(Session* s, const QString& fileId, quint64 received, quint64 total);
41private slots:
42 // // ---- PeerConnection ----
43 void onConnected();
44 void onDisconnected();
45
46private:
47 void sinkerOk(DataSinker* sinker);
48 void shake_hands_to_peers();
49 void attempt_parse_hello(const QByteArray& e);
50
51private:
52 PeerConnection* transport;
53 SessionInfo localInfo;
54 SessionInfo remoteInfo;
56 bool communicate_ready { false };
57};
58
59#endif
Definition DataProtocolizedController.h:10
Definition DataSinker.h:8
Definition ISinkerRouter.h:5
socket positive
Definition PeerConnection.h:8
Definition SessionInfo.h:4
Definition Session.h:11