![]() |
Qt 6.x
The Qt SDK
|
#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 |
class | QtPrivate::QBasicFutureWatcher |
template<class T > | |
class | QPromise |
Definition at line 45 of file qfutureinterface.h.
|
strongprotected |
Enumerator | |
---|---|
CancelOnly | |
CancelAndFinish |
Definition at line 198 of file qfutureinterface.h.
Enumerator | |
---|---|
NoState | |
Running | |
Started | |
Finished | |
Canceled | |
Suspending | |
Suspended | |
Throttled | |
Pending |
Definition at line 48 of file qfutureinterface.h.
Definition at line 50 of file qfutureinterface.cpp.
QFutureInterfaceBase::QFutureInterfaceBase | ( | const QFutureInterfaceBase & | other | ) |
Definition at line 54 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::ref(), and QFutureInterfaceBasePrivate::refCount.
|
inlinenoexcept |
Definition at line 63 of file qfutureinterface.h.
|
virtual |
Definition at line 60 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::deref(), and QFutureInterfaceBasePrivate::refCount.
void QFutureInterfaceBase::cancel | ( | ) |
Definition at line 85 of file qfutureinterface.cpp.
References cancel(), and CancelOnly.
Referenced by cancel(), QFutureWatcherBase::cancel(), and reportCanceled().
|
protected |
Definition at line 90 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 123 of file qfutureinterface.h.
References cancel().
|
protected |
Definition at line 852 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Cleaned, d, and lock.
|
protectednoexcept |
Definition at line 612 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::RefCount::derefT(), and QFutureInterfaceBasePrivate::refCount.
Referenced by QFutureInterface< T >::~QFutureInterface().
QtPrivate::ExceptionStore & QFutureInterfaceBase::exceptionStore | ( | ) |
Definition at line 576 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 393 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_expectedResultCount.
|
static |
bool QFutureInterfaceBase::hasException | ( | ) | const |
Definition at line 571 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::hasException.
Referenced by QFutureInterface< void >::QFutureInterface(), QFutureInterface< T >::~QFutureInterface(), QFutureInterface< T >::reportException(), rethrowPossibleException(), and setFilterMode().
bool QFutureInterfaceBase::isCanceled | ( | ) | const |
Definition at line 190 of file qfutureinterface.cpp.
References Canceled, and queryState().
Referenced by QtConcurrent::ThreadEngineBase::isCanceled(), and isChainCanceled().
bool QFutureInterfaceBase::isChainCanceled | ( | ) | const |
Definition at line 883 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Canceled, d, and isCanceled().
bool QFutureInterfaceBase::isFinished | ( | ) | const |
Definition at line 195 of file qfutureinterface.cpp.
References Finished, and queryState().
Referenced by QFutureWatcherBase::isFinished(), reportFinished(), setContinuation(), and waitForFinished().
bool QFutureInterfaceBase::isProgressUpdateNeeded | ( | ) | const |
Definition at line 326 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 222 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_isResultReadyAt(), lock, and QFutureInterfaceBasePrivate::m_mutex.
bool QFutureInterfaceBase::isRunning | ( | ) | const |
Definition at line 180 of file qfutureinterface.cpp.
References queryState(), and Running.
|
protected |
Definition at line 234 of file qfutureinterface.cpp.
References Pending, queryState(), and Running.
Referenced by waitForResult().
bool QFutureInterfaceBase::isStarted | ( | ) | const |
Definition at line 185 of file qfutureinterface.cpp.
References queryState(), and Started.
bool QFutureInterfaceBase::isSuspended | ( | ) | const |
Definition at line 212 of file qfutureinterface.cpp.
References queryState(), and Suspended.
Referenced by QFutureWatcherBase::isSuspended().
bool QFutureInterfaceBase::isSuspending | ( | ) | const |
Definition at line 200 of file qfutureinterface.cpp.
References queryState(), and Suspending.
Referenced by QFutureWatcherBase::isSuspending(), and QtConcurrent::ThreadEngineBase::reportIfSuspensionDone().
bool QFutureInterfaceBase::isThrottled | ( | ) | const |
Definition at line 217 of file qfutureinterface.cpp.
References queryState(), and Throttled.
bool QFutureInterfaceBase::isValid | ( | ) | const |
Definition at line 228 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::isValid, lock, and QFutureInterfaceBasePrivate::m_mutex.
|
protected |
Definition at line 893 of file qfutureinterface.cpp.
References d.
int QFutureInterfaceBase::loadState | ( | ) | const |
Definition at line 403 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), NoState, and QFutureInterfaceBasePrivate::state.
QMutex & QFutureInterfaceBase::mutex | ( | ) | const |
Definition at line 566 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex.
|
inline |
QFutureInterfaceBase & QFutureInterfaceBase::operator= | ( | const QFutureInterfaceBase & | other | ) |
Definition at line 594 of file qfutureinterface.cpp.
References copy(), other(), and swap().
|
inline |
int QFutureInterfaceBase::progressMaximum | ( | ) | const |
Definition at line 308 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
Referenced by QFutureWatcherBase::progressMaximum().
int QFutureInterfaceBase::progressMinimum | ( | ) | const |
Definition at line 302 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
Referenced by QFutureWatcherBase::progressMinimum().
QString QFutureInterfaceBase::progressText | ( | ) | const |
Definition at line 320 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progress.
Referenced by QFutureWatcherBase::progressText(), and setProgressValueAndText().
int QFutureInterfaceBase::progressValue | ( | ) | const |
Definition at line 296 of file qfutureinterface.cpp.
References lock, QFutureInterfaceBasePrivate::m_mutex, and QFutureInterfaceBasePrivate::m_progressValue.
Referenced by QFutureWatcherBase::progressValue(), setProgressValue(), and setProgressValueAndText().
bool QFutureInterfaceBase::queryState | ( | State | state | ) | const |
Definition at line 398 of file qfutureinterface.cpp.
References QBasicAtomicInteger< T >::loadRelaxed(), QFutureInterfaceBasePrivate::state, and state.
Referenced by isCanceled(), QFutureWatcherBase::isCanceled(), isFinished(), isRunning(), QFutureWatcherBase::isRunning(), isRunningOrPending(), isStarted(), QFutureWatcherBase::isStarted(), isSuspended(), isSuspending(), and isThrottled().
|
protectednoexcept |
Definition at line 607 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 342 of file qfutureinterface.cpp.
References cancel().
Referenced by QtFuture::connect(), and QtPrivate::UnwrapHandler::unwrapImpl().
void QFutureInterfaceBase::reportException | ( | const QException & | e | ) |
Definition at line 348 of file qfutureinterface.cpp.
References QException::raise(), and reportException().
Referenced by QFutureInterface< void >::QFutureInterface(), reportException(), and QFutureInterface< T >::reportException().
void QFutureInterfaceBase::reportException | ( | const std::exception_ptr & | e | ) |
Definition at line 360 of file qfutureinterface.cpp.
References QFutureCallOutEvent::Canceled, d, and switch_on().
void QFutureInterfaceBase::reportFinished | ( | ) |
Definition at line 376 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 454 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 332 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 QtFuture::connect(), QtFuture::makeExceptionalFuture(), QtPrivate::makeReadyRangeFutureImpl(), QtFuture::makeReadyValueFuture(), QtFuture::makeReadyVoidFuture(), QtConcurrent::ThreadEngine< T >::startAsynchronously(), and QtPrivate::UnwrapHandler::unwrapImpl().
void QFutureInterfaceBase::reportSuspended | ( | ) | const |
Definition at line 153 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 618 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 314 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_resultCount(), lock, and QFutureInterfaceBasePrivate::m_mutex.
Referenced by setExpectedResultCount().
QtPrivate::ResultStoreBase & QFutureInterfaceBase::resultStoreBase | ( | ) |
Definition at line 582 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::Data::m_results, and Q_ASSERT.
Referenced by QFutureInterface< void >::QFutureInterface(), QFutureInterface< T >::~QFutureInterface(), QFutureInterface< T >::reportException(), and setFilterMode().
const QtPrivate::ResultStoreBase & QFutureInterfaceBase::resultStoreBase | ( | ) | const |
Definition at line 588 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::data, QFutureInterfaceBasePrivate::hasException, QFutureInterfaceBasePrivate::Data::m_results, and Q_ASSERT.
|
protected |
Definition at line 626 of file qfutureinterface.cpp.
References exceptionStore(), hasException(), and QtPrivate::ExceptionStore::rethrowException().
|
protected |
Definition at line 863 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Cleaned, d, and lock.
Referenced by QFutureInterface< T >::reportFinished(), and QFutureInterface< void >::reportFinished().
|
protected |
Definition at line 822 of file qfutureinterface.cpp.
References setContinuation().
Referenced by setContinuation().
|
protected |
Definition at line 827 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::Cleaned, d, isFinished(), lock, and qWarning.
void QFutureInterfaceBase::setExpectedResultCount | ( | int | resultCount | ) |
Definition at line 386 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_expectedResultCount, QFutureInterfaceBasePrivate::m_progress, resultCount(), and setProgressRange().
void QFutureInterfaceBase::setFilterMode | ( | bool | enable | ) |
Definition at line 495 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 888 of file qfutureinterface.cpp.
References d.
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 518 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 529 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 540 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 480 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::runnable.
void QFutureInterfaceBase::setSuspended | ( | bool | suspend | ) |
Definition at line 127 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().
Referenced by QFutureWatcherBase::resume(), QFutureWatcherBase::setSuspended(), and QFutureWatcherBase::suspend().
void QFutureInterfaceBase::setThreadPool | ( | QThreadPool * | pool | ) |
Definition at line 485 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_pool, and pool.
void QFutureInterfaceBase::setThrottled | ( | bool | enable | ) |
Definition at line 167 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 265 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 602 of file qfutureinterface.cpp.
References d, other(), and qSwap().
Referenced by QFutureInterface< T >::operator=(), and operator=().
QThreadPool * QFutureInterfaceBase::threadPool | ( | ) | const |
Definition at line 490 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::m_pool.
void QFutureInterfaceBase::toggleSuspended | ( | ) |
Definition at line 140 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().
Referenced by QFutureWatcherBase::toggleSuspended().
void QFutureInterfaceBase::waitForFinished | ( | ) |
Definition at line 435 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.
Referenced by QFutureWatcherBase::waitForFinished().
bool QFutureInterfaceBase::waitForNextResult | ( | ) |
Definition at line 239 of file qfutureinterface.cpp.
References QFutureInterfaceBasePrivate::internal_waitForNextResult(), lock, and QFutureInterfaceBasePrivate::m_mutex.
void QFutureInterfaceBase::waitForResult | ( | int | resultIndex | ) |
Definition at line 411 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 245 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 167 of file qfutureinterface.h.
|
friend |
Definition at line 168 of file qfutureinterface.h.
|
friend |
Definition at line 184 of file qfutureinterface.h.
|
friend |
Definition at line 174 of file qfutureinterface.h.
|
friend |
Definition at line 171 of file qfutureinterface.h.
|
friend |
Definition at line 178 of file qfutureinterface.h.
|
friend |
Definition at line 181 of file qfutureinterface.h.