diff options
Diffstat (limited to 'src/libs/installer/remoteserverconnection.h')
-rw-r--r-- | src/libs/installer/remoteserverconnection.h | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/libs/installer/remoteserverconnection.h b/src/libs/installer/remoteserverconnection.h index ccb8e153d..53f6a412b 100644 --- a/src/libs/installer/remoteserverconnection.h +++ b/src/libs/installer/remoteserverconnection.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -33,12 +33,12 @@ #include <QPointer> #include <QThread> +#include <QProcess> #include <QtCore/private/qfsfileengine_p.h> QT_BEGIN_NAMESPACE -class QProcess; -class QIODevice; +class QLocalSocket; QT_END_NAMESPACE namespace QInstaller { @@ -48,6 +48,20 @@ class PermissionSettings; class QProcessSignalReceiver; class AbstractArchiveSignalReceiver; +class RemoteServerReply +{ +public: + explicit RemoteServerReply(QLocalSocket *socket); + ~RemoteServerReply(); + + template <typename T> + void send(const T &data); + +private: + QLocalSocket *m_socket; + bool m_sent; +}; + class RemoteServerConnection : public QThread { Q_OBJECT @@ -57,27 +71,26 @@ public: RemoteServerConnection(qintptr socketDescriptor, const QString &authorizationKey, QObject *parent); - void run() Q_DECL_OVERRIDE; + void run() override; signals: void shutdownRequested(); private: - template <typename T> - void sendData(QIODevice *device, const T &arg); - void handleQProcess(QIODevice *device, const QString &command, QDataStream &data); - void handleQSettings(QIODevice *device, const QString &command, QDataStream &data, + void handleQProcess(RemoteServerReply *reply, const QString &command, QDataStream &data); + void handleQSettings(RemoteServerReply *reply, const QString &command, QDataStream &data, PermissionSettings *settings); - void handleQFSFileEngine(QIODevice *device, const QString &command, QDataStream &data); - void handleArchive(QIODevice *device, const QString &command, QDataStream &data); + void handleQFSFileEngine(RemoteServerReply *reply, const QString &command, QDataStream &data); + void handleArchive(RemoteServerReply *reply, const QString &command, QDataStream &data); private: qintptr m_socketDescriptor; - - QProcess *m_process; - QFSFileEngine *m_engine; - AbstractArchive *m_archive; QString m_authorizationKey; + + QScopedPointer<QProcess> m_process; + QScopedPointer<QFSFileEngine> m_engine; + QScopedPointer<AbstractArchive> m_archive; + QProcessSignalReceiver *m_processSignalReceiver; AbstractArchiveSignalReceiver *m_archiveSignalReceiver; }; |