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>.
Loading...
Searching...
No Matches
tasktree.cpp File Reference

(7c3db02ad3753a4dc6bb691588cf1e0b4a89514f)

#include "tasktree.h"
#include "barrier.h"
#include <QtCore/QDebug>
#include <QtCore/QEventLoop>
#include <QtCore/QFutureWatcher>
#include <QtCore/QHash>
#include <QtCore/QMetaEnum>
#include <QtCore/QMutex>
#include <QtCore/QPointer>
#include <QtCore/QPromise>
#include <QtCore/QSet>
#include <QtCore/QTime>
#include <QtCore/QTimer>
+ Include dependency graph for tasktree.cpp:

Go to the source code of this file.

Classes

class  Tasking::Guard
 
class  Tasking::GuardLocker
 
class  Tasking::LoopThreadData
 
class  Tasking::LoopData
 
class  Tasking::StorageThreadData
 
class  Tasking::StorageData
 
class  Tasking::ExecutionContextActivator
 
class  Tasking::ContainerNode
 
class  Tasking::TaskNode
 
class  Tasking::TaskTreePrivate
 
struct  Tasking::TaskTreePrivate::StorageHandler
 
class  Tasking::RuntimeIteration
 
class  Tasking::RuntimeContainer
 
class  Tasking::RuntimeTask
 
struct  Tasking::TimerData
 
struct  Tasking::TimerThreadData
 

Namespaces

namespace  Tasking
 \inmodule TaskingSolution
 

Macros

#define QT_STRING(cond)   qDebug("SOFT ASSERT: \"%s\" in %s: %s", cond, __FILE__, QT_STRINGIFY(__LINE__))
 
#define QT_ASSERT(cond, action)   if (Q_LIKELY(cond)) {} else { QT_STRING(#cond); action; } do {} while (0)
 
#define QT_CHECK(cond)   if (cond) {} else { QT_STRING(#cond); } do {} while (0)
 

Typedefs

using Tasking::StoragePtr = void *
 
using Tasking::TimeoutCallback = std::function<void()>
 

Functions

GroupItem Tasking::parallelLimit (int limit)
 Constructs a group's element describing the \l{Execution Mode}{execution mode}.
 
GroupItem Tasking::workflowPolicy (WorkflowPolicy policy)
 Constructs a group's \l {Workflow Policy} {workflow policy} element for a given policy.
 
static TaskTreeTasking::activeTaskTree ()
 
DoneResult Tasking::toDoneResult (bool success)
 
static SetupResult Tasking::toSetupResult (bool success)
 
static DoneResult Tasking::toDoneResult (DoneWith doneWith)
 
static DoneWith Tasking::toDoneWith (DoneResult result)
 
static QString Tasking::currentTime ()
 
static QString Tasking::logHeader (const QString &logName)
 
static bool Tasking::initialSuccessBit (WorkflowPolicy workflowPolicy)
 
static bool Tasking::isProgressive (RuntimeContainer *container)
 
static std::vector< TaskNodeTasking::createChildren (TaskTreePrivate *taskTreePrivate, const QList< GroupItem > &children)
 
static bool Tasking::shouldCall (CallDoneIf callDoneIf, DoneWith result)
 
static void Tasking::removeTimerId (int timerId)
 
static void Tasking::handleTimeout (int timerId)
 
static int Tasking::scheduleTimeout (milliseconds timeout, QObject *context, const TimeoutCallback &callback)
 

Variables

const GroupItem Tasking::nullItem = GroupItem({})
 
const GroupItem Tasking::sequential = parallelLimit(1)
 
const GroupItem Tasking::parallel = parallelLimit(0)
 
const GroupItem Tasking::parallelIdealThreadCountLimit = parallelLimit(qMax(QThread::idealThreadCount() - 1, 1))
 
const GroupItem Tasking::stopOnError = workflowPolicy(WorkflowPolicy::StopOnError)
 
const GroupItem Tasking::continueOnError = workflowPolicy(WorkflowPolicy::ContinueOnError)
 
const GroupItem Tasking::stopOnSuccess = workflowPolicy(WorkflowPolicy::StopOnSuccess)
 
const GroupItem Tasking::continueOnSuccess = workflowPolicy(WorkflowPolicy::ContinueOnSuccess)
 
const GroupItem Tasking::stopOnSuccessOrError = workflowPolicy(WorkflowPolicy::StopOnSuccessOrError)
 
const GroupItem Tasking::finishAllAndSuccess = workflowPolicy(WorkflowPolicy::FinishAllAndSuccess)
 
const GroupItem Tasking::finishAllAndError = workflowPolicy(WorkflowPolicy::FinishAllAndError)
 
static thread_local QList< TaskTree * > Tasking::s_activeTaskTrees = {}
 
constexpr QLatin1StringView Tasking::s_activeStorageWarning
 
static thread_local TimerThreadData Tasking::s_threadTimerData = {}
 

Macro Definition Documentation

◆ QT_ASSERT

#define QT_ASSERT ( cond,
action )   if (Q_LIKELY(cond)) {} else { QT_STRING(#cond); action; } do {} while (0)

Definition at line 30 of file tasktree.cpp.

◆ QT_CHECK

◆ QT_STRING

#define QT_STRING ( cond)    qDebug("SOFT ASSERT: \"%s\" in %s: %s", cond, __FILE__, QT_STRINGIFY(__LINE__))

Definition at line 29 of file tasktree.cpp.