QtcProcess: Simplify emitting guarded signals

Avoid code repetition.

Change-Id: I259cb3e9396c0c84dbc63e7929f949580070c382
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2022-10-06 15:59:16 +02:00
parent 0e3d1064e6
commit 239788c121

View File

@@ -704,11 +704,10 @@ public:
void handleDone(const ProcessResultData &data); void handleDone(const ProcessResultData &data);
void clearForRun(); void clearForRun();
void emitStarting(); void emitGuardedSignal(void (QtcProcess::* signalName)()) {
void emitStarted(); GuardLocker locker(m_guard);
void emitDone(); emit (q->*signalName)();
void emitReadyReadStandardOutput(); }
void emitReadyReadStandardError();
ProcessResult interpretExitCode(int exitCode); ProcessResult interpretExitCode(int exitCode);
@@ -1150,7 +1149,7 @@ void QtcProcess::start()
// Pass a dynamic property with info about blocking type // Pass a dynamic property with info about blocking type
d->m_process->setProperty(QTC_PROCESS_BLOCKING_TYPE, property(QTC_PROCESS_BLOCKING_TYPE)); d->m_process->setProperty(QTC_PROCESS_BLOCKING_TYPE, property(QTC_PROCESS_BLOCKING_TYPE));
} }
d->emitStarting(); d->emitGuardedSignal(&QtcProcess::starting);
d->m_process->start(); d->m_process->start();
} }
@@ -1946,7 +1945,7 @@ void QtcProcessPrivate::handleStarted(qint64 processId, qint64 applicationMainTh
m_processId = processId; m_processId = processId;
m_applicationMainThreadId = applicationMainThreadId; m_applicationMainThreadId = applicationMainThreadId;
emitStarted(); emitGuardedSignal(&QtcProcess::started);
} }
void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByteArray &errorData) void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByteArray &errorData)
@@ -1964,7 +1963,7 @@ void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByt
std::cout << outputData.constData() << std::flush; std::cout << outputData.constData() << std::flush;
} else { } else {
m_stdOut.append(outputData); m_stdOut.append(outputData);
emitReadyReadStandardOutput(); emitGuardedSignal(&QtcProcess::readyReadStandardOutput);
} }
} }
if (!errorData.isEmpty()) { if (!errorData.isEmpty()) {
@@ -1973,7 +1972,7 @@ void QtcProcessPrivate::handleReadyRead(const QByteArray &outputData, const QByt
std::cerr << errorData.constData() << std::flush; std::cerr << errorData.constData() << std::flush;
} else { } else {
m_stdErr.append(errorData); m_stdErr.append(errorData);
emitReadyReadStandardError(); emitGuardedSignal(&QtcProcess::readyReadStandardError);
} }
} }
} }
@@ -2028,41 +2027,11 @@ void QtcProcessPrivate::handleDone(const ProcessResultData &data)
m_stdOut.handleRest(); m_stdOut.handleRest();
m_stdErr.handleRest(); m_stdErr.handleRest();
emitDone(); emitGuardedSignal(&QtcProcess::done);
m_processId = 0; m_processId = 0;
m_applicationMainThreadId = 0; m_applicationMainThreadId = 0;
} }
void QtcProcessPrivate::emitStarting()
{
GuardLocker locker(m_guard);
emit q->starting();
}
void QtcProcessPrivate::emitStarted()
{
GuardLocker locker(m_guard);
emit q->started();
}
void QtcProcessPrivate::emitDone()
{
GuardLocker locker(m_guard);
emit q->done();
}
void QtcProcessPrivate::emitReadyReadStandardOutput()
{
GuardLocker locker(m_guard);
emit q->readyReadStandardOutput();
}
void QtcProcessPrivate::emitReadyReadStandardError()
{
GuardLocker locker(m_guard);
emit q->readyReadStandardError();
}
} // namespace Utils } // namespace Utils
#include "qtcprocess.moc" #include "qtcprocess.moc"