Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include <qfutureinterface.h>
Public Types | |
enum | State { NoState = 0x00 , Running = 0x01 , Started = 0x02 , Finished = 0x04 , Canceled = 0x08 , Suspending = 0x10 , Suspended = 0x20 , Throttled = 0x40 , Pending = 0x80 } |
Static Public Member Functions | |
template<typename T > | |
static QFutureInterfaceBase | get (const QFuture< T > &future) |
Protected Types | |
enum class | CancelMode { CancelOnly , CancelAndFinish } |
Protected Member Functions | |
bool | refT () const noexcept |
bool | derefT () const noexcept |
void | reset () |
void | rethrowPossibleException () |
void | setContinuation (std::function< void(const QFutureInterfaceBase &)> func) |
void | setContinuation (std::function< void(const QFutureInterfaceBase &)> func, QFutureInterfaceBasePrivate *continuationFutureData) |
void | cleanContinuation () |
void | runContinuation () const |
void | setLaunchAsync (bool value) |
bool | launchAsync () const |
bool | isRunningOrPending () const |
void | cancel (CancelMode mode) |
Friends | |
class | QFutureWatcherBase |
class | QFutureWatcherBasePrivate |
template<typename Function , typename ResultType , typename ParentResultType > | |
class | QtPrivate::Continuation |
template<class Function , class ResultType > | |
class | QtPrivate::CanceledHandler |
template<class Function , class ResultType > | |
class | QtPrivate::FailureHandler |
template<class T > | |
class | QPromise |
Q_CORE_EXPORT void | QtPrivate::watchContinuationImpl (const QObject *context, QtPrivate::QSlotObjectBase *slotObj, QFutureInterfaceBase &fi) |
Definition at line 48 of file qfutureinterface.h.
|
strongprotected |
Enumerator | |
---|---|
CancelOnly | |
CancelAndFinish |
Definition at line 202 of file qfutureinterface.h.
Enumerator | |
---|---|
NoState | |
Running | |
Started | |
Finished | |
Canceled | |
Suspending | |
Suspended | |
Throttled | |
Pending |
Definition at line 51 of file qfutureinterface.h.
Definition at line 105 of file qfutureinterface.cpp.
QFutureInterfaceBase::QFutureInterfaceBase | ( | const QFutureInterfaceBase & | other | ) |
Definition at line 109 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::ref(), and QFutureInterfaceBasePrivate::refCount.
|
inlinenoexcept |
Definition at line 66 of file qfutureinterface.h.
|
virtual |
Definition at line 115 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::deref(), and QFutureInterfaceBasePrivate::refCount.
void QFutureInterfaceBase::cancel | ( | ) |
Definition at line 140 of file qfutureinterface.cpp.
References cancel(), and CancelOnly.
Referenced by cancel(), and reportCanceled().
|
protected |
Definition at line 145 of file qfutureinterface.cpp.
References CancelAndFinish, Canceled, QFutureCallOutEvent::Canceled, QFutureInterfaceBasePrivate::Canceled, CancelOnly, QFutureInterfaceBasePrivate::continuationData, Finished, QFutureCallOutEvent::Finished, QFutureInterfaceBasePrivate::isValid, QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_mutex, next, QFutureInterfaceBasePrivate::pausedWaitCondition, Running, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, switch_from_to(), QFutureInterfaceBasePrivate::waitCondition, and QWaitCondition::wakeAll().
|
inline |
Definition at line 126 of file qfutureinterface.h.
References cancel().
|
protected |
|
protectednoexcept |
Definition at line 667 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::derefT(), and QFutureInterfaceBasePrivate::refCount.
Referenced by QFutureInterface< T >::~QFutureInterface().
QtPrivate::ExceptionStore & QFutureInterfaceBase::exceptionStore | ( | ) |
Definition at line 631 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::Data::m_exceptionStore, and Q_ASSERT.
Referenced by rethrowPossibleException().
int QFutureInterfaceBase::expectedResultCount | ( | ) |
Definition at line 448 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_expectedResultCount.
|
static |
bool QFutureInterfaceBase::hasException | ( | ) | const |
Definition at line 626 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::hasException.
Referenced by QFutureInterface< T >::~QFutureInterface(), QFutureInterface< T >::reportException(), QFutureInterface< T >::reportException(), rethrowPossibleException(), and setFilterMode().
bool QFutureInterfaceBase::isCanceled | ( | ) | const |
Definition at line 245 of file qfutureinterface.cpp.
References Canceled, and queryState().
Referenced by QtConcurrent::ThreadEngineBase::isCanceled(), and isChainCanceled().
bool QFutureInterfaceBase::isChainCanceled | ( | ) | const |
Definition at line 931 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Canceled, QFutureInterfaceBasePrivate::continuationState, and isCanceled().
bool QFutureInterfaceBase::isFinished | ( | ) | const |
Definition at line 250 of file qfutureinterface.cpp.
References Finished, and queryState().
Referenced by reportFinished(), setContinuation(), and waitForFinished().
bool QFutureInterfaceBase::isProgressUpdateNeeded | ( | ) | const |
Definition at line 381 of file qfutureinterface.cpp.
References QElapsedTimer::elapsed(), QElapsedTimer::isValid(), QFutureInterfaceBasePrivate::m_mutex, MaxProgressEmitsPerSecond, and QFutureInterfaceBasePrivate::progressTime.
bool QFutureInterfaceBase::isResultReadyAt | ( | int | index | ) | const |
Definition at line 277 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_isResultReadyAt(), lock, and QFutureInterfaceBasePrivate::m_mutex.
bool QFutureInterfaceBase::isRunning | ( | ) | const |
Definition at line 235 of file qfutureinterface.cpp.
References queryState(), and Running.
|
protected |
Definition at line 289 of file qfutureinterface.cpp.
References Pending, queryState(), and Running.
Referenced by waitForResult().
bool QFutureInterfaceBase::isStarted | ( | ) | const |
Definition at line 240 of file qfutureinterface.cpp.
References queryState(), and Started.
bool QFutureInterfaceBase::isSuspended | ( | ) | const |
Definition at line 267 of file qfutureinterface.cpp.
References queryState(), and Suspended.
bool QFutureInterfaceBase::isSuspending | ( | ) | const |
Definition at line 255 of file qfutureinterface.cpp.
References queryState(), and Suspending.
Referenced by QtConcurrent::ThreadEngineBase::reportIfSuspensionDone().
bool QFutureInterfaceBase::isThrottled | ( | ) | const |
Definition at line 272 of file qfutureinterface.cpp.
References queryState(), and Throttled.
bool QFutureInterfaceBase::isValid | ( | ) | const |
Definition at line 283 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::isValid, lock, and QFutureInterfaceBasePrivate::m_mutex.
|
protected |
Definition at line 941 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::launchAsync.
int QFutureInterfaceBase::loadState | ( | ) | const |
Definition at line 458 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), NoState, and QFutureInterfaceBasePrivate::state.
QMutex & QFutureInterfaceBase::mutex | ( | ) | const |
Definition at line 621 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex.
|
inline |
QFutureInterfaceBase & QFutureInterfaceBase::operator= | ( | const QFutureInterfaceBase & | other | ) |
Definition at line 649 of file qfutureinterface.cpp.
References copy(), other(), and swap().
|
inline |
int QFutureInterfaceBase::progressMaximum | ( | ) | const |
Definition at line 363 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
int QFutureInterfaceBase::progressMinimum | ( | ) | const |
Definition at line 357 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
QString QFutureInterfaceBase::progressText | ( | ) | const |
Definition at line 375 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
Referenced by setProgressValueAndText().
int QFutureInterfaceBase::progressValue | ( | ) | const |
Definition at line 351 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progressValue.
Referenced by setProgressValue(), and setProgressValueAndText().
bool QFutureInterfaceBase::queryState | ( | State | state | ) | const |
Definition at line 453 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::state, and state.
Referenced by isCanceled(), isFinished(), isRunning(), isRunningOrPending(), isStarted(), isSuspended(), isSuspending(), and isThrottled().
|
protectednoexcept |
Definition at line 662 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::refCount, and QFutureInterfaceBasePrivate::RefCount::refT().
Referenced by QFutureInterface< T >::QFutureInterface(), QFutureInterface< T >::QFutureInterface(), QFutureInterface< T >::QFutureInterface(), and QFutureInterface< T >::QFutureInterface().
void QFutureInterfaceBase::reportCanceled | ( | ) |
Definition at line 397 of file qfutureinterface.cpp.
References cancel().
void QFutureInterfaceBase::reportException | ( | const QException & | e | ) |
Definition at line 403 of file qfutureinterface.cpp.
References QException::raise(), and reportException().
Referenced by reportException(), QFutureInterface< T >::reportException(), and QFutureInterface< T >::reportException().
void QFutureInterfaceBase::reportException | ( | const std::exception_ptr & | e | ) |
Definition at line 415 of file qfutureinterface.cpp.
References QFutureCallOutEvent::Canceled, d, and switch_on().
void QFutureInterfaceBase::reportFinished | ( | ) |
Definition at line 431 of file qfutureinterface.cpp.
References Finished, QFutureCallOutEvent::Finished, isFinished(), QFutureInterfaceBasePrivate::m_mutex, Running, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, switch_from_to(), QFutureInterfaceBasePrivate::waitCondition, and QWaitCondition::wakeAll().
Referenced by QFutureInterface< T >::reportFinished(), and QFutureInterface< void >::reportFinished().
void QFutureInterfaceBase::reportResultsReady | ( | int | beginIndex, |
int | endIndex ) |
Definition at line 509 of file qfutureinterface.cpp.
References Canceled, Finished, QFutureInterfaceBasePrivate::internal_updateProgressValue(), QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_progress, QFutureInterfaceBasePrivate::m_progressValue, QFutureCallOutEvent::Progress, QFutureCallOutEvent::ResultsReady, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::sendCallOuts(), QFutureInterfaceBasePrivate::state, QFutureInterfaceBasePrivate::waitCondition, and QWaitCondition::wakeAll().
void QFutureInterfaceBase::reportStarted | ( | ) |
Definition at line 387 of file qfutureinterface.cpp.
References Canceled, Finished, QFutureInterfaceBasePrivate::isValid, QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_mutex, Running, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::setState(), Started, QFutureCallOutEvent::Started, and QFutureInterfaceBasePrivate::state.
Referenced by QtConcurrent::ThreadEngine< T >::startAsynchronously().
void QFutureInterfaceBase::reportSuspended | ( | ) | const |
Definition at line 208 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, state, Suspended, QFutureCallOutEvent::Suspended, Suspending, and switch_from_to().
Referenced by QtConcurrent::ThreadEngineBase::reportIfSuspensionDone().
|
protected |
Definition at line 673 of file qfutureinterface.cpp.
References QElapsedTimer::invalidate(), QFutureInterfaceBasePrivate::isValid, QFutureInterfaceBasePrivate::m_progress, QFutureInterfaceBasePrivate::m_progressValue, and QFutureInterfaceBasePrivate::progressTime.
int QFutureInterfaceBase::resultCount | ( | ) | const |
Definition at line 369 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_resultCount(), lock, and QFutureInterfaceBasePrivate::m_mutex.
Referenced by setExpectedResultCount().
QtPrivate::ResultStoreBase & QFutureInterfaceBase::resultStoreBase | ( | ) |
Definition at line 637 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::Data::m_results, and Q_ASSERT.
Referenced by QFutureInterface< T >::~QFutureInterface(), QFutureInterface< T >::reportException(), QFutureInterface< T >::reportException(), and setFilterMode().
const QtPrivate::ResultStoreBase & QFutureInterfaceBase::resultStoreBase | ( | ) | const |
Definition at line 643 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::Data::m_results, and Q_ASSERT.
|
protected |
Definition at line 681 of file qfutureinterface.cpp.
References exceptionStore(), hasException(), and QtPrivate::ExceptionStore::rethrowException().
|
protected |
Definition at line 911 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Cleaned, QFutureInterfaceBasePrivate::continuation, QFutureInterfaceBasePrivate::continuationMutex, QFutureInterfaceBasePrivate::continuationState, and lock.
Referenced by QFutureInterface< T >::reportFinished(), and QFutureInterface< void >::reportFinished().
|
protected |
Definition at line 870 of file qfutureinterface.cpp.
References setContinuation().
Referenced by setContinuation().
|
protected |
Definition at line 875 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Cleaned, QFutureInterfaceBasePrivate::continuation, QFutureInterfaceBasePrivate::continuationData, QFutureInterfaceBasePrivate::continuationMutex, QFutureInterfaceBasePrivate::continuationState, isFinished(), lock, and qWarning.
void QFutureInterfaceBase::setExpectedResultCount | ( | int | resultCount | ) |
Definition at line 441 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_expectedResultCount, QFutureInterfaceBasePrivate::m_progress, resultCount(), and setProgressRange().
void QFutureInterfaceBase::setFilterMode | ( | bool | enable | ) |
Definition at line 550 of file qfutureinterface.cpp.
References hasException(), QFutureInterfaceBasePrivate::m_mutex, resultStoreBase(), and QtPrivate::ResultStoreBase::setFilterMode().
Referenced by QtConcurrent::FilteredEachKernel< Iterator, KeepFunctor >::start().
|
protected |
Definition at line 936 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::launchAsync.
void QFutureInterfaceBase::setProgressRange | ( | int | minimum, |
int | maximum ) |
Sets the progress range's minimum and maximum values to minimum and maximum respectively.
If maximum is smaller than minimum, minimum becomes the only legal value.
The progress value is reset to be minimum.
The progress range usage can be disabled by using setProgressRange(0, 0). In this case progress value is also reset to 0.
The behavior of this method is mostly inspired by \l QProgressBar::setRange.
Definition at line 573 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::m_progress, QFutureInterfaceBasePrivate::m_progressValue, QFutureCallOutEvent::ProgressRange, qMax(), and QFutureInterfaceBasePrivate::sendCallOut().
Referenced by setExpectedResultCount(), and QtConcurrent::ThreadEngineBase::setProgressRange().
void QFutureInterfaceBase::setProgressValue | ( | int | progressValue | ) |
Definition at line 584 of file qfutureinterface.cpp.
References progressValue(), and setProgressValueAndText().
Referenced by QtConcurrent::ThreadEngineBase::setProgressValue().
void QFutureInterfaceBase::setProgressValueAndText | ( | int | progressValue, |
const QString & | progressText ) |
In case of the progressValue falling out of the progress range, this method has no effect. Such behavior is inspired by \l QProgressBar::setValue.
Definition at line 595 of file qfutureinterface.cpp.
References Canceled, Finished, QFutureInterfaceBasePrivate::internal_updateProgress(), QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::m_progress, QFutureInterfaceBasePrivate::m_progressValue, QFutureCallOutEvent::Progress, progressText(), progressValue(), QFutureInterfaceBasePrivate::sendCallOut(), and QFutureInterfaceBasePrivate::state.
Referenced by setProgressValue().
Definition at line 535 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::runnable.
void QFutureInterfaceBase::setSuspended | ( | bool | suspend | ) |
Definition at line 182 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pausedWaitCondition, QFutureCallOutEvent::Resumed, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, suspend(), Suspending, QFutureCallOutEvent::Suspending, switch_off(), switch_on(), and QWaitCondition::wakeAll().
void QFutureInterfaceBase::setThreadPool | ( | QThreadPool * | pool | ) |
Definition at line 540 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_pool, and pool.
void QFutureInterfaceBase::setThrottled | ( | bool | enable | ) |
Definition at line 222 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), lock, QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pausedWaitCondition, QFutureInterfaceBasePrivate::state, switch_off(), switch_on(), Throttled, and QWaitCondition::wakeAll().
void QFutureInterfaceBase::suspendIfRequested | ( | ) |
Definition at line 320 of file qfutureinterface.cpp.
References Canceled, QBasicAtomicInteger< T >::loadRelaxed(), lock, QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pausedWaitCondition, QFutureInterfaceBasePrivate::pool(), releaser, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, state, Suspended, QFutureCallOutEvent::Suspended, Suspending, switch_from_to(), and QWaitCondition::wait().
|
noexcept |
Definition at line 657 of file qfutureinterface.cpp.
References d, other(), and qSwap().
Referenced by QFutureInterface< T >::operator=(), and operator=().
QThreadPool * QFutureInterfaceBase::threadPool | ( | ) | const |
Definition at line 545 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_pool.
void QFutureInterfaceBase::toggleSuspended | ( | ) |
Definition at line 195 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pausedWaitCondition, QFutureCallOutEvent::Resumed, QFutureInterfaceBasePrivate::sendCallOut(), QFutureInterfaceBasePrivate::state, Suspending, QFutureCallOutEvent::Suspending, switch_off(), switch_on(), and QWaitCondition::wakeAll().
void QFutureInterfaceBase::waitForFinished | ( | ) |
Definition at line 490 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, isFinished(), lock, QFutureInterfaceBasePrivate::Data::m_exceptionStore, QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pool(), QtPrivate::ExceptionStore::rethrowException(), QFutureInterfaceBasePrivate::runnable, QWaitCondition::wait(), and QFutureInterfaceBasePrivate::waitCondition.
bool QFutureInterfaceBase::waitForNextResult | ( | ) |
Definition at line 294 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_waitForNextResult(), lock, and QFutureInterfaceBasePrivate::m_mutex.
void QFutureInterfaceBase::waitForResult | ( | int | resultIndex | ) |
Definition at line 466 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::internal_isResultReadyAt(), isRunningOrPending(), lock, QFutureInterfaceBasePrivate::Data::m_exceptionStore, QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pool(), QtPrivate::ExceptionStore::rethrowException(), QFutureInterfaceBasePrivate::runnable, QWaitCondition::wait(), and QFutureInterfaceBasePrivate::waitCondition.
Referenced by QFutureInterface< T >::results().
void QFutureInterfaceBase::waitForResume | ( | ) |
Definition at line 300 of file qfutureinterface.cpp.
References Canceled, QBasicAtomicInteger< T >::loadRelaxed(), lock, QFutureInterfaceBasePrivate::m_mutex, QFutureInterfaceBasePrivate::pausedWaitCondition, QFutureInterfaceBasePrivate::pool(), releaser, QFutureInterfaceBasePrivate::state, state, and QWaitCondition::wait().
Referenced by QtConcurrent::ThreadEngineBase::waitForResume().
|
friend |
Definition at line 170 of file qfutureinterface.h.
|
friend |
Definition at line 171 of file qfutureinterface.h.
|
friend |
Definition at line 188 of file qfutureinterface.h.
|
friend |
Definition at line 177 of file qfutureinterface.h.
|
friend |
Definition at line 174 of file qfutureinterface.h.
|
friend |
Definition at line 181 of file qfutureinterface.h.
|
friend |