CCIMXDesktop
 
Loading...
Searching...
No Matches
SessionHub.h
1#ifndef SESSIONHUB_H
2#define SESSIONHUB_H
3
4#include "Session.h"
5#include "SessionInfo.h"
6#include <QHash>
7#include <QMap>
8#include <QObject>
9#include <QPointer>
10struct PeerInfo;
11class SessionHub : public QObject {
12 Q_OBJECT
13public:
14 explicit SessionHub(const SessionInfo& localName, QObject* parent = nullptr);
15 ~SessionHub() override = default;
16 std::vector<int> running_ports() const;
17 Session* createSessionActive(const SessionInfo& info, const PeerInfo& peers);
18 Session* passiveSessionListen();
19 Session* queryFromUuid(const QString& uuid);
20
21signals:
22 void next_available_port(const int port);
23 void sessionReady(Session* s, const SessionInfo& remoteName);
24
25 void sendProgress(Session* s, quint64 sent, quint64 total);
26 void receiveProgress(Session* s, const QString& fileId, quint64 received, quint64 total);
27 void disconnected(Session* s);
28 void error(Session* s, const QString& errorString, int code);
29
30 // datas
31 void textReceived(Session* s, const QString& text);
32 void imageReceived(Session* s, const QImage& imageBytes);
33 void fileReceived(Session* s, const QString& fileSaveAt);
34
35private slots:
36 void onSessionConnected(Session* s);
37 void onSessionReady(Session* s, const SessionInfo& remoteName);
38 void onSessionSendProgress(Session* s, quint64 sent, quint64 total);
39 void onSessionReceiveProgress(Session* s, const QString& fileId, quint64 received, quint64 total);
40 void onSessionDisconnected(Session* s);
41 void onSessionError(Session* s, const QString& errorString, int code);
42
43private:
44 SessionInfo localInfo;
45 // ISinkerRouter* m_router;
46 QMap<QString, Session*> idmaps;
47 QHash<Session*, QPointer<Session>> sessions_containers;
48};
49
50#endif // SESSIONHUB_H
Definition SessionHub.h:11
Definition SessionInfo.h:4
Definition Session.h:11
Definition NetInfo.h:10