![]() |
Qt 6.x
The Qt SDK
|
#include <qfutureinterface_p.h>
Classes | |
union | Data |
struct | ProgressData |
class | RefCount |
Public Types | |
enum | ContinuationState : quint8 { Default , Canceled , Cleaned } |
Public Member Functions | |
QFutureInterfaceBasePrivate (QFutureInterfaceBase::State initialState) | |
~QFutureInterfaceBasePrivate () | |
QThreadPool * | pool () const |
int | internal_resultCount () const |
bool | internal_isResultReadyAt (int index) const |
bool | internal_waitForNextResult () |
bool | internal_updateProgressValue (int progress) |
bool | internal_updateProgress (int progress, const QString &progressText=QString()) |
void | internal_setThrottled (bool enable) |
void | sendCallOut (const QFutureCallOutEvent &callOut) |
void | sendCallOuts (const QFutureCallOutEvent &callOut1, const QFutureCallOutEvent &callOut2) |
void | connectOutputInterface (QFutureCallOutInterface *iface) |
void | disconnectOutputInterface (QFutureCallOutInterface *iface) |
void | setState (QFutureInterfaceBase::State state) |
Public Attributes | |
QMutex | m_mutex |
QBasicMutex | continuationMutex |
QList< QFutureCallOutInterface * > | outputConnections |
QElapsedTimer | progressTime |
QWaitCondition | waitCondition |
QWaitCondition | pausedWaitCondition |
Data | data = { QtPrivate::ResultStoreBase() } |
QRunnable * | runnable = nullptr |
QThreadPool * | m_pool = nullptr |
std::function< void(const QFutureInterfaceBase &)> | continuation |
QFutureInterfaceBasePrivate * | continuationData = nullptr |
RefCount | refCount = 1 |
QAtomicInt | state |
int | m_progressValue = 0 |
QScopedPointer< ProgressData > | m_progress |
int | m_expectedResultCount = 0 |
bool | launchAsync = false |
bool | isValid = false |
bool | hasException = false |
std::atomic< ContinuationState > | continuationState { Default } |
Definition at line 84 of file qfutureinterface_p.h.
Enumerator | |
---|---|
Default | |
Canceled | |
Cleaned |
Definition at line 163 of file qfutureinterface_p.h.
QFutureInterfaceBasePrivate::QFutureInterfaceBasePrivate | ( | QFutureInterfaceBase::State | initialState | ) |
Definition at line 632 of file qfutureinterface.cpp.
References QElapsedTimer::invalidate(), and progressTime.
QFutureInterfaceBasePrivate::~QFutureInterfaceBasePrivate | ( | ) |
Definition at line 638 of file qfutureinterface.cpp.
References hasException.
void QFutureInterfaceBasePrivate::connectOutputInterface | ( | QFutureCallOutInterface * | iface | ) |
Definition at line 750 of file qfutureinterface.cpp.
References QList< T >::append(), QSet< T >::begin(), begin(), QFutureInterfaceBase::Canceled, QFutureCallOutEvent::Canceled, QVarLengthArray< T, Prealloc >::emplace_back(), QSet< T >::end(), QFutureInterfaceBase::Finished, QFutureCallOutEvent::Finished, hasException, interface, it, QBasicAtomicInteger< T >::loadRelaxed(), m_mutex, m_progress, m_progressValue, outputConnections, QFutureCallOutEvent::Progress, QFutureCallOutEvent::ProgressRange, QFutureCallOutEvent::ResultsReady, QFutureInterfaceBase::Started, QFutureCallOutEvent::Started, state, QFutureInterfaceBase::Suspended, QFutureCallOutEvent::Suspended, QFutureInterfaceBase::Suspending, QFutureCallOutEvent::Suspending, and QMutexLocker< Mutex >::unlock().
Referenced by QFutureWatcherBase::connectOutputInterface().
void QFutureInterfaceBasePrivate::disconnectOutputInterface | ( | QFutureCallOutInterface * | iface | ) |
Definition at line 806 of file qfutureinterface.cpp.
References QListSpecialMethodsBase< T >::indexOf(), interface, lock, m_mutex, outputConnections, and QList< T >::removeAt().
Referenced by QFutureWatcherBase::disconnectOutputInterface().
bool QFutureInterfaceBasePrivate::internal_isResultReadyAt | ( | int | index | ) | const |
Definition at line 651 of file qfutureinterface.cpp.
References false, and hasException.
Referenced by QFutureInterfaceBase::isResultReadyAt(), and QFutureInterfaceBase::waitForResult().
int QFutureInterfaceBasePrivate::internal_resultCount | ( | ) | const |
Definition at line 646 of file qfutureinterface.cpp.
References hasException.
Referenced by QFutureInterfaceBase::resultCount().
void QFutureInterfaceBasePrivate::internal_setThrottled | ( | bool | enable | ) |
Definition at line 707 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), pausedWaitCondition, state, switch_off(), switch_on(), QFutureInterfaceBase::Throttled, and QWaitCondition::wakeAll().
bool QFutureInterfaceBasePrivate::internal_updateProgress | ( | int | progress, |
const QString & | progressText = QString() |
||
) |
Definition at line 688 of file qfutureinterface.cpp.
References QElapsedTimer::elapsed(), QElapsedTimer::isValid(), m_progress, m_progressValue, MaxProgressEmitsPerSecond, progressTime, Q_ASSERT, and QElapsedTimer::start().
Referenced by QFutureInterfaceBase::setProgressValueAndText().
bool QFutureInterfaceBasePrivate::internal_updateProgressValue | ( | int | progress | ) |
Definition at line 672 of file qfutureinterface.cpp.
References QElapsedTimer::elapsed(), QElapsedTimer::isValid(), m_progressValue, MaxProgressEmitsPerSecond, progressTime, and QElapsedTimer::start().
Referenced by QFutureInterfaceBase::reportResultsReady().
bool QFutureInterfaceBasePrivate::internal_waitForNextResult | ( | ) |
Definition at line 656 of file qfutureinterface.cpp.
References QFutureInterfaceBase::Canceled, hasException, QBasicAtomicInteger< T >::loadRelaxed(), m_mutex, QFutureInterfaceBase::Running, state, QWaitCondition::wait(), and waitCondition.
Referenced by QFutureInterfaceBase::waitForNextResult().
|
inline |
Definition at line 166 of file qfutureinterface_p.h.
References QThreadPool::globalInstance(), and m_pool.
Referenced by QFutureInterfaceBase::suspendIfRequested(), QFutureInterfaceBase::waitForFinished(), QFutureInterfaceBase::waitForResult(), and QFutureInterfaceBase::waitForResume().
void QFutureInterfaceBasePrivate::sendCallOut | ( | const QFutureCallOutEvent & | callOut | ) |
Definition at line 724 of file qfutureinterface.cpp.
References QList< T >::at(), i, QList< T >::isEmpty(), outputConnections, QFutureCallOutInterface::postCallOutEvent(), and QList< T >::size().
Referenced by QFutureInterfaceBase::cancel(), QFutureInterfaceBase::reportFinished(), QFutureInterfaceBase::reportResultsReady(), QFutureInterfaceBase::reportStarted(), QFutureInterfaceBase::reportSuspended(), QFutureInterfaceBase::setProgressRange(), QFutureInterfaceBase::setProgressValueAndText(), QFutureInterfaceBase::setSuspended(), QFutureInterfaceBase::suspendIfRequested(), and QFutureInterfaceBase::toggleSuspended().
void QFutureInterfaceBasePrivate::sendCallOuts | ( | const QFutureCallOutEvent & | callOut1, |
const QFutureCallOutEvent & | callOut2 | ||
) |
Definition at line 733 of file qfutureinterface.cpp.
References i, interface, QList< T >::isEmpty(), outputConnections, and QList< T >::size().
Referenced by QFutureInterfaceBase::reportResultsReady().
void QFutureInterfaceBasePrivate::setState | ( | QFutureInterfaceBase::State | state | ) |
Definition at line 817 of file qfutureinterface.cpp.
References newState(), state, and QBasicAtomicInteger< T >::storeRelaxed().
Referenced by QFutureInterfaceBase::reportStarted().
std::function<void(const QFutureInterfaceBase &)> QFutureInterfaceBasePrivate::continuation |
Definition at line 143 of file qfutureinterface_p.h.
QFutureInterfaceBasePrivate* QFutureInterfaceBasePrivate::continuationData = nullptr |
Definition at line 144 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::cancel().
QBasicMutex QFutureInterfaceBasePrivate::continuationMutex |
Definition at line 117 of file qfutureinterface_p.h.
std::atomic<ContinuationState> QFutureInterfaceBasePrivate::continuationState { Default } |
Definition at line 164 of file qfutureinterface_p.h.
Data QFutureInterfaceBasePrivate::data = { QtPrivate::ResultStoreBase() } |
Definition at line 138 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::exceptionStore(), QFutureInterfaceBase::resultStoreBase(), QFutureInterfaceBase::resultStoreBase(), QFutureInterfaceBase::waitForFinished(), and QFutureInterfaceBase::waitForResult().
bool QFutureInterfaceBasePrivate::hasException = false |
Definition at line 161 of file qfutureinterface_p.h.
Referenced by ~QFutureInterfaceBasePrivate(), connectOutputInterface(), QFutureInterfaceBase::exceptionStore(), QFutureInterfaceBase::hasException(), internal_isResultReadyAt(), internal_resultCount(), internal_waitForNextResult(), QFutureInterfaceBase::resultStoreBase(), QFutureInterfaceBase::resultStoreBase(), QFutureInterfaceBase::waitForFinished(), and QFutureInterfaceBase::waitForResult().
bool QFutureInterfaceBasePrivate::isValid = false |
Definition at line 160 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::cancel(), QFutureInterfaceBase::isValid(), QFutureInterfaceBase::reportStarted(), and QFutureInterfaceBase::reset().
bool QFutureInterfaceBasePrivate::launchAsync = false |
Definition at line 159 of file qfutureinterface_p.h.
int QFutureInterfaceBasePrivate::m_expectedResultCount = 0 |
Definition at line 158 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::expectedResultCount(), and QFutureInterfaceBase::setExpectedResultCount().
|
mutable |
Definition at line 116 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::cancel(), connectOutputInterface(), disconnectOutputInterface(), internal_waitForNextResult(), QFutureInterfaceBase::isProgressUpdateNeeded(), QFutureInterfaceBase::isResultReadyAt(), QFutureInterfaceBase::isValid(), QFutureInterfaceBase::mutex(), QFutureInterfaceBase::progressMaximum(), QFutureInterfaceBase::progressMinimum(), QFutureInterfaceBase::progressText(), QFutureInterfaceBase::progressValue(), QFutureInterfaceBase::reportFinished(), QFutureInterfaceBase::reportStarted(), QFutureInterfaceBase::reportSuspended(), QFutureInterfaceBase::resultCount(), QFutureInterfaceBase::setFilterMode(), QFutureInterfaceBase::setProgressRange(), QFutureInterfaceBase::setProgressValueAndText(), QFutureInterfaceBase::setSuspended(), QFutureInterfaceBase::setThrottled(), QFutureInterfaceBase::suspendIfRequested(), QFutureInterfaceBase::toggleSuspended(), QFutureInterfaceBase::waitForFinished(), QFutureInterfaceBase::waitForNextResult(), QFutureInterfaceBase::waitForResult(), and QFutureInterfaceBase::waitForResume().
QThreadPool* QFutureInterfaceBasePrivate::m_pool = nullptr |
Definition at line 141 of file qfutureinterface_p.h.
Referenced by pool(), QFutureInterfaceBase::setThreadPool(), and QFutureInterfaceBase::threadPool().
QScopedPointer<ProgressData> QFutureInterfaceBasePrivate::m_progress |
Definition at line 156 of file qfutureinterface_p.h.
Referenced by connectOutputInterface(), internal_updateProgress(), QFutureInterfaceBase::progressMaximum(), QFutureInterfaceBase::progressMinimum(), QFutureInterfaceBase::progressText(), QFutureInterfaceBase::reportResultsReady(), QFutureInterfaceBase::reset(), QFutureInterfaceBase::setExpectedResultCount(), QFutureInterfaceBase::setProgressRange(), and QFutureInterfaceBase::setProgressValueAndText().
int QFutureInterfaceBasePrivate::m_progressValue = 0 |
Definition at line 149 of file qfutureinterface_p.h.
Referenced by connectOutputInterface(), internal_updateProgress(), internal_updateProgressValue(), QFutureInterfaceBase::progressValue(), QFutureInterfaceBase::reportResultsReady(), QFutureInterfaceBase::reset(), QFutureInterfaceBase::setProgressRange(), and QFutureInterfaceBase::setProgressValueAndText().
QList<QFutureCallOutInterface *> QFutureInterfaceBasePrivate::outputConnections |
Definition at line 118 of file qfutureinterface_p.h.
Referenced by connectOutputInterface(), disconnectOutputInterface(), sendCallOut(), and sendCallOuts().
QWaitCondition QFutureInterfaceBasePrivate::pausedWaitCondition |
Definition at line 121 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::cancel(), internal_setThrottled(), QFutureInterfaceBase::setSuspended(), QFutureInterfaceBase::setThrottled(), QFutureInterfaceBase::suspendIfRequested(), QFutureInterfaceBase::toggleSuspended(), and QFutureInterfaceBase::waitForResume().
QElapsedTimer QFutureInterfaceBasePrivate::progressTime |
Definition at line 119 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBasePrivate(), internal_updateProgress(), internal_updateProgressValue(), QFutureInterfaceBase::isProgressUpdateNeeded(), and QFutureInterfaceBase::reset().
RefCount QFutureInterfaceBasePrivate::refCount = 1 |
Definition at line 146 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::QFutureInterfaceBase(), QFutureInterfaceBase::~QFutureInterfaceBase(), QFutureInterfaceBase::derefT(), and QFutureInterfaceBase::refT().
Definition at line 140 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::setRunnable(), QFutureInterfaceBase::waitForFinished(), and QFutureInterfaceBase::waitForResult().
QAtomicInt QFutureInterfaceBasePrivate::state |
Definition at line 147 of file qfutureinterface_p.h.
Referenced by QFutureInterfaceBase::cancel(), connectOutputInterface(), internal_setThrottled(), internal_waitForNextResult(), QFutureInterfaceBase::loadState(), QFutureInterfaceBase::queryState(), QFutureInterfaceBase::reportFinished(), QFutureInterfaceBase::reportResultsReady(), QFutureInterfaceBase::reportStarted(), QFutureInterfaceBase::reportSuspended(), QFutureInterfaceBase::setProgressValueAndText(), setState(), QFutureInterfaceBase::setSuspended(), QFutureInterfaceBase::setThrottled(), QFutureInterfaceBase::suspendIfRequested(), QFutureInterfaceBase::toggleSuspended(), and QFutureInterfaceBase::waitForResume().
QWaitCondition QFutureInterfaceBasePrivate::waitCondition |