forked from Skycoder42/QtRemoteObjectsSslBackend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrosslserverio.h
51 lines (39 loc) · 1.07 KB
/
rosslserverio.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
#ifndef ROTLSSERVERIO_H
#define ROTLSSERVERIO_H
#include <QObject>
#include <QSslSocket>
#include <qsslserver.h>
#include <QtRemoteObjects/QConnectionAbstractServer>
class RoSslServerIo : public ServerIoDevice
{
Q_OBJECT
public:
explicit RoSslServerIo(QSslSocket *socket, QObject *parent = nullptr);
QIODevice *connection() const override;
public Q_SLOTS:
void onError(QAbstractSocket::SocketError error);
void onSslErrors(const QList<QSslError> &errors);
protected:
void doClose() override;
private:
QSslSocket *_socket;
};
class RoSslServer : public QConnectionAbstractServer
{
Q_OBJECT
public:
explicit RoSslServer(QObject *parent);
~RoSslServer();
bool hasPendingConnections() const override;
ServerIoDevice *configureNewConnection() override;
QUrl address() const override;
bool listen(const QUrl &address) override;
QAbstractSocket::SocketError serverError() const override;
void close() override;
private Q_SLOTS:
void onAcceptError(QAbstractSocket::SocketError socketError);
private:
QSslServer *_server;
QUrl _originalUrl;
};
#endif // ROTLSSERVERIO_H