diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-06-08 08:49:27 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-06-08 12:03:29 +0000 |
commit | 224f5809248200fe883a960d1aa09af36578645d (patch) | |
tree | 799499dc2ba3dab73dc9a5fbd53d7ef2545bb4af /src/libs/utils/qtcprocess.cpp | |
parent | cf47ad361db966d9fcfdf9a3cdb2259025c561b3 (diff) |
Move SignalType into processinterface.h
Rename it into ProcessSignalType. It's going to be
used in new interface.
Change-Id: Ifbab8bbb601f14ecbf65d940e524c558d5f1d7a1
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/utils/qtcprocess.cpp')
-rw-r--r-- | src/libs/utils/qtcprocess.cpp | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index 96fa8d72385..a27ba63982e 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -485,28 +485,22 @@ static ProcessImpl defaultProcessImpl() return ProcessImpl::ProcessLauncher; } -enum class SignalType { - Started, - ReadyRead, - Done -}; - class ProcessInterfaceSignal { public: - SignalType signalType() const { return m_signalType; } + ProcessSignalType signalType() const { return m_signalType; } virtual ~ProcessInterfaceSignal() = default; protected: - ProcessInterfaceSignal(SignalType signalType) : m_signalType(signalType) {} + ProcessInterfaceSignal(ProcessSignalType signalType) : m_signalType(signalType) {} private: - const SignalType m_signalType; + const ProcessSignalType m_signalType; }; class StartedSignal : public ProcessInterfaceSignal { public: StartedSignal(qint64 processId, qint64 applicationMainThreadId) - : ProcessInterfaceSignal(SignalType::Started) + : ProcessInterfaceSignal(ProcessSignalType::Started) , m_processId(processId) , m_applicationMainThreadId(applicationMainThreadId) {} qint64 processId() const { return m_processId; } @@ -520,7 +514,7 @@ class ReadyReadSignal : public ProcessInterfaceSignal { public: ReadyReadSignal(const QByteArray &stdOut, const QByteArray &stdErr) - : ProcessInterfaceSignal(SignalType::ReadyRead) + : ProcessInterfaceSignal(ProcessSignalType::ReadyRead) , m_stdOut(stdOut) , m_stdErr(stdErr) {} QByteArray stdOut() const { return m_stdOut; } @@ -534,7 +528,7 @@ class DoneSignal : public ProcessInterfaceSignal { public: DoneSignal(const ProcessResultData &resultData) - : ProcessInterfaceSignal(SignalType::Done) + : ProcessInterfaceSignal(ProcessSignalType::Done) , m_resultData(resultData) {} ProcessResultData resultData() const { return m_resultData; } private: @@ -547,7 +541,7 @@ public: ProcessInterfaceHandler(QtcProcessPrivate *caller, ProcessInterface *process); // Called from caller's thread exclusively. - bool waitForSignal(int msecs, SignalType newSignal); + bool waitForSignal(int msecs, ProcessSignalType newSignal); void moveToCallerThread(); void startKillTimer(int killTimeout); @@ -651,16 +645,16 @@ public: // === ProcessInterfaceHandler related === // Called from caller's thread exclusively - bool waitForSignal(int msecs, SignalType newSignal); + bool waitForSignal(int msecs, ProcessSignalType newSignal); void flush() { flushSignals(takeAllSignals()); } - bool flushFor(SignalType signalType) { + bool flushFor(ProcessSignalType signalType) { return flushSignals(takeSignalsFor(signalType), &signalType); } QList<ProcessInterfaceSignal *> takeAllSignals(); - QList<ProcessInterfaceSignal *> takeSignalsFor(SignalType signalType); + QList<ProcessInterfaceSignal *> takeSignalsFor(ProcessSignalType signalType); bool flushSignals(const QList<ProcessInterfaceSignal *> &signalList, - SignalType *signalType = nullptr); + ProcessSignalType *signalType = nullptr); bool shouldFlush() const { QMutexLocker locker(&m_mutex); return !m_signals.isEmpty(); } Qt::ConnectionType connectionType() const; @@ -709,7 +703,7 @@ ProcessInterfaceHandler::ProcessInterfaceHandler(QtcProcessPrivate *caller, } // Called from caller's thread exclusively. -bool ProcessInterfaceHandler::waitForSignal(int msecs, SignalType newSignal) +bool ProcessInterfaceHandler::waitForSignal(int msecs, ProcessSignalType newSignal) { QDeadlineTimer deadline(msecs); while (true) { @@ -784,7 +778,7 @@ void ProcessInterfaceHandler::appendSignal(ProcessInterfaceSignal *newSignal) } // Called from caller's thread exclusively -bool QtcProcessPrivate::waitForSignal(int msecs, SignalType newSignal) +bool QtcProcessPrivate::waitForSignal(int msecs, ProcessSignalType newSignal) { m_processHandler->setParent(nullptr); @@ -811,14 +805,14 @@ QList<ProcessInterfaceSignal *> QtcProcessPrivate::takeAllSignals() } // Called from caller's thread exclusively -QList<ProcessInterfaceSignal *> QtcProcessPrivate::takeSignalsFor(SignalType signalType) +QList<ProcessInterfaceSignal *> QtcProcessPrivate::takeSignalsFor(ProcessSignalType signalType) { // If we are flushing for ReadyRead or Done - flush all. - if (signalType != SignalType::Started) + if (signalType != ProcessSignalType::Started) return takeAllSignals(); QMutexLocker locker(&m_mutex); - const QList<SignalType> storedSignals = transform(qAsConst(m_signals), + const QList<ProcessSignalType> storedSignals = transform(qAsConst(m_signals), [](const ProcessInterfaceSignal *aSignal) { return aSignal->signalType(); }); @@ -826,8 +820,10 @@ QList<ProcessInterfaceSignal *> QtcProcessPrivate::takeSignalsFor(SignalType sig // If we are flushing for Started: // - if Started was buffered - flush Started only (even when Done was buffered) // - otherwise if Done signal was buffered - flush all. - if (!storedSignals.contains(SignalType::Started) && storedSignals.contains(SignalType::Done)) + if (!storedSignals.contains(ProcessSignalType::Started) + && storedSignals.contains(ProcessSignalType::Done)) { return std::exchange(m_signals, {}); // avoid takeAllSignals() because of mutex locked + } QList<ProcessInterfaceSignal *> oldSignals; const auto matchingIndex = storedSignals.lastIndexOf(signalType); @@ -840,21 +836,21 @@ QList<ProcessInterfaceSignal *> QtcProcessPrivate::takeSignalsFor(SignalType sig // Called from caller's thread exclusively bool QtcProcessPrivate::flushSignals(const QList<ProcessInterfaceSignal *> &signalList, - SignalType *signalType) + ProcessSignalType *signalType) { bool signalMatched = false; for (const ProcessInterfaceSignal *storedSignal : qAsConst(signalList)) { - const SignalType storedSignalType = storedSignal->signalType(); + const ProcessSignalType storedSignalType = storedSignal->signalType(); if (signalType && storedSignalType == *signalType) signalMatched = true; switch (storedSignalType) { - case SignalType::Started: + case ProcessSignalType::Started: handleStartedSignal(static_cast<const StartedSignal *>(storedSignal)); break; - case SignalType::ReadyRead: + case ProcessSignalType::ReadyRead: handleReadyReadSignal(static_cast<const ReadyReadSignal *>(storedSignal)); break; - case SignalType::Done: + case ProcessSignalType::Done: if (signalType) signalMatched = true; handleDoneSignal(static_cast<const DoneSignal *>(storedSignal)); @@ -1452,7 +1448,7 @@ bool QtcProcess::waitForStarted(int msecs) if (d->m_state == QProcess::NotRunning) return false; return s_waitForStarted.measureAndRun(&QtcProcessPrivate::waitForSignal, d, msecs, - SignalType::Started); + ProcessSignalType::Started); } bool QtcProcess::waitForReadyRead(int msecs) @@ -1460,7 +1456,7 @@ bool QtcProcess::waitForReadyRead(int msecs) QTC_ASSERT(d->m_process, return false); if (d->m_state == QProcess::NotRunning) return false; - return d->waitForSignal(msecs, SignalType::ReadyRead); + return d->waitForSignal(msecs, ProcessSignalType::ReadyRead); } bool QtcProcess::waitForFinished(int msecs) @@ -1468,7 +1464,7 @@ bool QtcProcess::waitForFinished(int msecs) QTC_ASSERT(d->m_process, return false); if (d->m_state == QProcess::NotRunning) return false; - return d->waitForSignal(msecs, SignalType::Done); + return d->waitForSignal(msecs, ProcessSignalType::Done); } QByteArray QtcProcess::readAllStandardOutput() |