diff options
Diffstat (limited to 'src/libs/installer/remoteserverconnection_p.h')
-rw-r--r-- | src/libs/installer/remoteserverconnection_p.h | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/src/libs/installer/remoteserverconnection_p.h b/src/libs/installer/remoteserverconnection_p.h index dad5f4133..09e6de7d7 100644 --- a/src/libs/installer/remoteserverconnection_p.h +++ b/src/libs/installer/remoteserverconnection_p.h @@ -30,6 +30,9 @@ #define REMOTESERVERCONNECTION_P_H #include "protocol.h" +#ifdef IFW_LIBARCHIVE +#include "libarchivearchive.h" +#endif #include <QMutex> #include <QProcess> @@ -49,7 +52,7 @@ private: connect(process, &QIODevice::bytesWritten, this, &QProcessSignalReceiver::onBytesWritten); connect(process, &QIODevice::aboutToClose, this, &QProcessSignalReceiver::onAboutToClose); connect(process, &QIODevice::readChannelFinished, this, &QProcessSignalReceiver::onReadChannelFinished); - connect(process, SIGNAL(error(QProcess::ProcessError)), + connect(process, SIGNAL(errorOccurred(QProcess::ProcessError)), SLOT(onError(QProcess::ProcessError))); connect(process, &QProcess::readyReadStandardOutput, this, &QProcessSignalReceiver::onReadyReadStandardOutput); @@ -124,6 +127,70 @@ private: QVariantList m_receivedSignals; }; +#ifdef IFW_LIBARCHIVE +class AbstractArchiveSignalReceiver : public QObject +{ + Q_OBJECT + friend class RemoteServerConnection; + +private: + explicit AbstractArchiveSignalReceiver(LibArchiveArchive *archive) + : QObject(archive) + { + connect(archive, &LibArchiveArchive::currentEntryChanged, + this, &AbstractArchiveSignalReceiver::onCurrentEntryChanged); + connect(archive, &LibArchiveArchive::completedChanged, + this, &AbstractArchiveSignalReceiver::onCompletedChanged); + connect(archive, &LibArchiveArchive::dataBlockRequested, + this, &AbstractArchiveSignalReceiver::onDataBlockRequested); + connect(archive, &LibArchiveArchive::seekRequested, + this, &AbstractArchiveSignalReceiver::onSeekRequested); + connect(archive, &LibArchiveArchive::workerFinished, + this, &AbstractArchiveSignalReceiver::onWorkerFinished); + } + +private Q_SLOTS: + void onCurrentEntryChanged(const QString &filename) + { + QMutexLocker _(&m_lock); + m_receivedSignals.append(QLatin1String(Protocol::AbstractArchiveSignalCurrentEntryChanged)); + m_receivedSignals.append(filename); + } + + void onCompletedChanged(quint64 completed, quint64 total) + { + QMutexLocker _(&m_lock); + m_receivedSignals.append(QLatin1String(Protocol::AbstractArchiveSignalCompletedChanged)); + m_receivedSignals.append(completed); + m_receivedSignals.append(total); + } + + void onDataBlockRequested() + { + QMutexLocker _(&m_lock); + m_receivedSignals.append(QLatin1String(Protocol::AbstractArchiveSignalDataBlockRequested)); + } + + void onSeekRequested(qint64 offset, int whence) + { + QMutexLocker _(&m_lock); + m_receivedSignals.append(QLatin1String(Protocol::AbstractArchiveSignalSeekRequested)); + m_receivedSignals.append(offset); + m_receivedSignals.append(whence); + } + + void onWorkerFinished() + { + QMutexLocker _(&m_lock); + m_receivedSignals.append(QLatin1String(Protocol::AbstractArchiveSignalWorkerFinished)); + } + +private: + QMutex m_lock; + QVariantList m_receivedSignals; +}; +#endif + } // namespace QInstaller #endif // REMOTESERVERCONNECTION_P_H |