このページでは

QtTaskTree Namespace

QtTaskTree 名前空間には、TaskTree モジュールのすべてのクラスとグローバル関数が含まれています。詳細...

ヘッダー: #include <QtTaskTree>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
以下のように: Qt 6.11
ステータス: テクノロジープレビュー

この名前空間はテクノロジープレビュー段階にあり、変更される可能性があります。

クラス

(technology preview) class Do
(technology preview) class Else
(technology preview) class ElseIf
(technology preview) class ExecutableItem
(technology preview) class ExecutionMode
(technology preview) class For
(technology preview) class Forever
(technology preview) class ForeverIterator
(technology preview) class Group
(technology preview) class GroupItem
(technology preview) class If
(technology preview) class Iterator
(technology preview) class ListIterator
(technology preview) struct ObjectSignal
(technology preview) class ParallelLimit
(technology preview) class QBarrier
(technology preview) class QCustomTask
(technology preview) class QDefaultTaskAdapter
(technology preview) class QMappedTaskTreeRunner
(technology preview) class QNetworkReplyWrapper
(technology preview) class QParallelTaskTreeRunner
(technology preview) class QProcessTaskDeleter
(technology preview) class QSequentialTaskTreeRunner
(technology preview) class QSingleTaskTreeRunner
(technology preview) class QStartedBarrier
(technology preview) class QSyncTask
(technology preview) class QTaskInterface
(technology preview) class QTaskTree
(technology preview) class QTcpSocketWrapper
(technology preview) class QThreadFunction
(technology preview) class QThreadFunctionBase
(technology preview) class RepeatIterator
(technology preview) class Storage
(technology preview) class Then
(technology preview) class UntilIterator
(technology preview) class When

型

BarrierKickerGetter
flags CallDone
enum class CallDoneFlag { Never, OnSuccess, OnError, OnCancel, Always }
enum class DoneResult { Success, Error }
enum class DoneWith { Success, Error, Cancel }
GroupItems
QBarrierTask
QNetworkReplyWrapperTask
QProcessTask
QStoredBarrier
QTaskTreeTask
QTcpSocketWrapperTask
QThreadFunctionTask
QTimeoutTask
enum class SetupResult { Continue, StopWithSuccess, StopWithError }
TreeDoneHandler
TreeSetupHandler
enum class WorkflowPolicy { StopOnError, ContinueOnError, StopOnSuccess, ContinueOnSuccess, StopOnSuccessOrError, …, FinishAllAndError }

変数

const QtTaskTree::GroupItem continueOnError
const QtTaskTree::GroupItem continueOnSuccess
const QtTaskTree::ExecutableItem errorItem
const QtTaskTree::GroupItem finishAllAndError
const QtTaskTree::GroupItem finishAllAndSuccess
const QtTaskTree::GroupItem nullItem
const QtTaskTree::ExecutionMode parallel
const QtTaskTree::ExecutionMode parallelIdealThreadCountLimit
const QtTaskTree::ExecutionMode sequential
const QtTaskTree::GroupItem stopOnError
const QtTaskTree::GroupItem stopOnSuccess
const QtTaskTree::GroupItem stopOnSuccessOrError
const QtTaskTree::ExecutableItem successItem

関数

QtTaskTree::ExecutableItem barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)
QtTaskTree::ObjectSignal<std::decay_t<Signal>> makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)
QtTaskTree::GroupItem onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)
QtTaskTree::GroupItem onGroupSetup(Handler &&handler)
QtTaskTree::ExecutableItem signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)
QtTaskTree::ExecutableItem timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)
QtTaskTree::GroupItem workflowPolicy(QtTaskTree::WorkflowPolicy policy)

詳細な説明

クラス

classDo

For および When 構文で使用される本体要素。詳細...

classElse

条件式で使用される「else」要素。詳細...

classElseIf

条件式で使用される「else if」要素。詳細...

classExecutableItem

実行可能なタスク項目の基底クラス。詳細...

classExecutionMode

実行モードを記述するグループ要素。詳細...

classFor

forループ要素。詳細...

classForever

サブタスクの無限ループ。詳細...

classForeverIterator

For要素内で使用される無限イテレータ。詳細...

classGroup

Groupは、非同期タスクのネストされたツリーをどのように実行・処理するかを記述する宣言型レシピを構成するための基本要素を表します。詳細...

classGroupItem

GroupItemは、任意のGroup の一部となり得る基本要素を表します。詳細...

classIf

条件式で使用される「if」要素です。詳細...

classIterator

For要素内でイテレータとして使用される基底クラスです。詳細...

classListIterator

For要素内で使用されるリストイテレータ。詳細...

classObjectSignal

QObject のサブクラスとそのシグナルを記述する構造体。詳細...

classParallelLimit

カスタム制限を持つ並列実行モード。詳細...

classQBarrier

要求に応じて終了する非同期タスク。詳細...

classQCustomTask

カスタムタスク項目を宣言し、そのセットアップおよび完了ハンドラを定義するために使用されるクラステンプレート。詳細...

classQDefaultTaskAdapter

QCustomTask で使用されるデフォルトのタスクアダプタを提供するクラステンプレート。詳細...

classQMappedTaskTreeRunner

指定された Key 型を持つ、マップ済みタスクツリーの実行コントローラです。詳細...

classQNetworkReplyWrapper

QNetworkReply およびQNetworkAccessManager をラップするクラスです。詳細...

classQParallelTaskTreeRunner

並列タスクツリーの実行コントローラ。詳細...

classQProcessTaskDeleter

QProcess 用のカスタムデリータで、QProcessTask によって使用されます。詳細...

classQSequentialTaskTreeRunner

逐次タスクツリーの実行コントローラ。詳細...

classQSingleTaskTreeRunner

単一タスクツリーの実行コントローラ。詳細...

classQStartedBarrier

指定された制限を持つ、開始済みのQBarrier 。詳細...

classQSyncTask

他のタスクの間に、カスタムハンドラを同期的に実行します。詳細...

classQTaskInterface

QTaskInterface は、カスタムタスクのインターフェースを適応させる際に使用されるヘルパークラスです。詳細...

classQTaskTree

QTaskTree クラスは、宣言的に定義された非同期タスクのツリーを実行します。詳細...

classQTcpSocketWrapper

QTcpSocket のラッパーです。詳細...

classQThreadFunction

QtConcurrent::run() を通じて、別のスレッドで関数の実行を制御するクラステンプレートです。詳細...

classQThreadFunctionBase

QThreadFunction クラステンプレートの基底クラスです。詳細...

classRepeatIterator

`For element`内で使用される反復イテレータ。詳細...

classStorage

実行中のタスクツリー内でのカスタムデータ交換のためのクラステンプレート。詳細...

classThen

条件式で使用される「then」要素。詳細...

classUntilIterator

For要素内で使用される条件付きイテレータ。詳細...

classWhen

バリアが前進するまで本体の実行を遅延させる要素です。詳細...

型ドキュメント

[alias] BarrierKickerGetter

`QStoredBarrier `を受け取り、`ExecutableItem`を返す関数(すなわち、`std::function<ExecutableItem(const QStoredBarrier &)>`)の型エイリアス。これは、When のコンストラクタ内で使用される。

enum class QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone

この列挙型は、onGroupDone() 要素またはカスタムタスクのコンストラクタに対するオプションの引数です。これは、グループまたはタスクの完了ハンドラをいつ呼び出すべきかをタスクツリーに指示します。

定数値説明
QtTaskTree::CallDoneFlag::Never0done ハンドラは決して呼び出されません。
QtTaskTree::CallDoneFlag::OnSuccess1 << 0実行が成功した場合、つまり `DoneWith::Success` となった場合にのみ、done ハンドラが呼び出されます。
QtTaskTree::CallDoneFlag::OnError1 << 1done ハンドラは、実行が失敗した後、つまり `DoneWith::Error` となった場合にのみ呼び出されます。
QtTaskTree::CallDoneFlag::OnCancel1 << 2done ハンドラは、実行がキャンセルされた後、つまり `DoneWith::Cancel` の場合にのみ呼び出されます。
QtTaskTree::CallDoneFlag::AlwaysOnSuccess | OnError | OnCanceldone ハンドラは常に呼び出されます。

CallDone 型は、QFlags<CallDoneFlag> の typedef です。これは、CallDoneFlag 値の OR 組み合わせを格納します。

enum class QtTaskTree::DoneResult

この列挙型は、グループまたはタスクのdoneハンドラ関数からオプションで返されます。doneハンドラが値を返さない場合、つまりその戻り値の型がvoid である場合、その最終的な戻り値は実行中のタスクツリーによって自動的に推論され、親グループに報告されます。

完了ハンドラが `DoneResult` を返す場合、ハンドラ内で最終的な戻り値を調整することができます。

グループの done ハンドラによって DoneResult が返された場合、グループのワークフローポリシーは無視されます。

この列挙型は、TaskInterface::done() シグナル内でも使用され、タスクが正常に終了したか、エラーで終了したかを示します。

定数値説明
QtTaskTree::DoneResult::Success0グループまたはタスクの実行が正常に終了しました。
QtTaskTree::DoneResult::Error1グループまたはタスクの実行がエラーで終了しました。

enum class QtTaskTree::DoneWith

この列挙型は、グループまたはタスクの完了ハンドラに対するオプションの引数です。これは、グループまたはタスクが正常に完了したか、エラーが発生したか、あるいはキャンセルされたかを示します。

また、QTaskTree::done() シグナル内の引数としても使用され、QTaskTree の実行の最終結果を示します。

定数値説明
QtTaskTree::DoneWith::Success0グループまたはタスクの実行が正常に終了しました。
QtTaskTree::DoneWith::Error1グループまたはタスクの実行がエラーで終了しました。
QtTaskTree::DoneWith::Cancel2グループまたはタスクの実行がキャンセルされました。これは、ユーザーが実行中のタスクツリーに対してQTaskTree::cancel()を呼び出した場合、またはグループのワークフローポリシーによって実行中の子タスクの一部がキャンセルされた場合に発生します。グループまたはタスクの実行がキャンセルされた場合、ハンドラからDoneResult を返してdoneハンドラの最終結果を調整しても、何の効果もありません。

[alias] QtTaskTree::GroupItems

QList<GroupItem> の型エイリアス。

[alias] QBarrierTask

QCustomTask<QBarrier> の型エイリアス。レシピ内で使用するためのものです。

[alias] QNetworkReplyWrapperTask

QCustomTask<QNetworkReplyWrapper> の型エイリアス。レシピ内で使用するためのものです。

[alias] QProcessTask

QCustomTask<QProcess> の型エイリアス(QProcessTaskDeleter を使用)で、レシピ内で使用するためのものです。

[alias] QStoredBarrier

QtTaskTree::Storage<QStartedBarrier> の型エイリアス。レシピ内で使用されます。

[alias] QTaskTreeTask

QCustomTask<QTaskTree> の型エイリアス。レシピ内で使用するためのものです。

[alias] QTcpSocketWrapperTask

QCustomTask<QTcpSocketWrapper> の型エイリアス。レシピ内で使用するためのものです。

[alias] template <typename ResultType> QThreadFunctionTask

QCustomTask<QThreadFunction<ResultType>> の型エイリアス。ここで、ResultType はスレッド関数の戻り値の型を指定し、レシピ内で使用されます。

[alias] QTimeoutTask

QCustomTask<std::chrono::milliseconds> の型エイリアスで、レシピ内で使用されます。std::chrono::milliseconds は、タイムアウトの期間を設定するために使用されます。デフォルトのタイムアウトはstd::chrono::milliseconds::zero() であり、つまり、制御が実行中のイベントループに戻り次第、QTimeoutTask は終了します。

使用例:

using namespace std::chrono;
using namespace std::chrono_literals;

const auto onSetup = [](milliseconds &timeout) { timeout = 1000ms; }
const auto onDone = [] { qDebug() << "Timed out."; }

const Group root {
    QTimeoutTask(onSetup, onDone)
};

timeoutTask()も参照してください 。

enum class QtTaskTree::SetupResult

この列挙型は、グループまたはタスクのセットアップハンドラ関数から、必要に応じて返されます。これは、セットアップハンドラの実行が終了した後、実行中のタスクツリーがどのように処理を進めるべきかを指示するものです。

定数値説明
QtTaskTree::SetupResult::Continue0デフォルト。グループまたはタスクの実行は通常通り続行されます。グループまたはタスクのセットアップハンドラが void を返した場合、Continue を返したものとみなされます。
QtTaskTree::SetupResult::StopWithSuccess1グループまたはタスクの実行は、成功して直ちに停止します。グループのセットアップハンドラからこれが返された場合、すべての子タスクはスキップされ、グループの `onGroupDone()` ハンドラが `DoneWith::Success` で呼び出されます。グループは親に成功を報告します。 グループのワークフローポリシーは無視されます。タスクのセットアップハンドラから戻された場合、タスクは開始されず、そのdoneハンドラも呼び出されず、タスクは親に成功を報告します。
QtTaskTree::SetupResult::StopWithError2グループまたはタスクの実行は、エラーにより直ちに停止します。グループのセットアップハンドラから戻された場合、すべての子タスクはスキップされ、グループのonGroupDone()ハンドラがDoneWith::Error を引数として呼び出されます。グループは親にエラーを報告します。 グループのワークフローポリシーは無視されます。タスクのセットアップハンドラから戻されると、タスクは開始されず、そのエラーハンドラも呼び出されず、タスクは親にエラーを報告します。

[alias] QtTaskTree::TreeDoneHandler

std::function<void(constQTaskTree &,QtTaskTree::DoneWith)> の型エイリアス。

TreeDoneHandler は、タスクツリーの実行をスケジューリングするタスクツリーランナーの関数のオプション引数です。この関数は、タスクツリーランナーのレシピの実行が完了した際に呼び出されます。QTaskTree およびレシピの結果へのアクセスは、渡された引数を介して行われます。

タスクツリーランナーは、std::function<void(const QTaskTree &)> 、std::function<void(QtTaskTree::DoneWith)> 、またはstd::function<void(void)> といった短縮形式のハンドラーも受け付けます。

[alias] QtTaskTree::TreeSetupHandler

std::function<void(QTaskTree &)> の型エイリアス。

TreeSetupHandler は、タスクツリーの実行をスケジューリングするタスクツリーランナーの関数のオプション引数です。この関数は、タスクツリーランナーがレシピを実行しようとする際に呼び出されます。QTaskTree へのアクセスは、渡された引数を介して行われます。

タスクツリーランナーは、std::function<void(void)> の短縮形式であるハンドラも受け付けます。

enum class QtTaskTree::WorkflowPolicy

この列挙型は、グループの子タスクのいずれかが実行を完了した際の「Group」要素の挙動を定義するものです。また、実行中の「Group」がキャンセルされた場合にも使用されます。

定数値説明
QtTaskTree::WorkflowPolicy::StopOnError0デフォルト。stopOnError グローバル要素に対応します。いずれかの子タスクがエラーで終了した場合、グループは停止し、エラーで終了します。すべての子タスクが正常に終了した場合、グループは正常に終了します。グループが空の場合、正常に終了します。
QtTaskTree::WorkflowPolicy::ContinueOnError1continueOnError グローバル要素に対応します。stopOnError と同様ですが、子タスクのいずれかがエラーで終了した場合、グループ内の他のタスクが正常に終了していたとしても、すべてのタスクが終了するまで実行が継続され、その後グループはエラーを報告します。すべての子タスクが正常に終了した場合、グループは正常に終了します。グループが空の場合、グループは正常に終了します。
QtTaskTree::WorkflowPolicy::StopOnSuccess2stopOnSuccess グローバル要素に対応します。子タスクのいずれかが正常に終了した場合、グループは停止し、正常に終了します。すべての子タスクがエラーで終了した場合、グループはエラーで終了します。グループが空の場合、グループはエラーで終了します。
QtTaskTree::WorkflowPolicy::ContinueOnSuccess3continueOnSuccess グローバル要素に対応します。stopOnSuccess と同様ですが、子タスクのいずれかが正常に終了した場合、グループ内の他のタスクの一部がエラーで終了していたとしても、すべてのタスクが終了するまで実行が継続され、その後グループは成功を報告します。すべての子タスクがエラーで終了した場合、グループはエラーで終了します。グループが空の場合、グループはエラーで終了します。
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError4stopOnSuccessOrError グローバル要素に対応します。グループは可能な限り多くのタスクを開始します。いずれかのタスクが完了すると、グループは停止し、そのタスクの結果を報告します。並列モードでのみ有用です。 順次モードでは、最初のタスクのみが開始され、それが完了するとグループも終了するため、他のタスクは常にスキップされます。グループが空の場合、エラーで終了します。
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess5finishAllAndSuccess グローバル要素に対応します。グループはすべてのタスクを実行し、その戻り値を無視します。すべてのタスクが終了すると、グループは正常に終了します。グループが空の場合も、正常に終了します。
QtTaskTree::WorkflowPolicy::FinishAllAndError6finishAllAndError グローバル要素に対応します。グループはすべてのタスクを実行し、それらの戻り値を無視します。すべてのタスクが終了すると、グループはエラーで終了します。グループが空の場合、グループはエラーで終了します。

子タスクの結果によってグループが停止する場合、つまり StopOnError、 StopOnSuccess、またはStopOnSuccessOrErrorポリシーが適用されている場合、グループは他の実行中の子タスク(存在する場合 — 例えば並列モード)をキャンセルし、まだ開始されていないタスク(例えば、順次モードにおいて、失敗したタスクの後に配置されているもの)の実行をスキップします。ParallelLimit が使用されている場合、子タスクの中止とスキップの両方が発生する可能性があります。

以下の表は、さまざまなワークフロー・ポリシー間の違いをまとめたものです:

WorkflowPolicyすべての子タスクを実行する結果グループが空の場合の結果
StopOnErrorいずれかの子タスクがエラーで終了した場合は停止し、エラーを報告する少なくとも1つの子タスクが失敗した場合はエラー、それ以外は成功成功
ContinueOnErrorはい少なくとも 1 つの子タスクが失敗した場合はエラー、それ以外は成功成功
成功時に停止いずれかの子タスクが正常に終了した時点で停止し、成功を報告する少なくとも1つの子タスクが成功した場合は成功、それ以外はエラーとなるエラー
成功時に継続はい少なくとも1つの子タスクが成功した場合は成功、それ以外はエラーエラー
StopOnSuccessOrErrorいずれかの子タスクが完了した時点で停止し、その子タスクの結果を報告する完了した子タスクの結果に応じて、成功またはエラーとなるエラー
FinishAllAndSuccessはい成功成功
すべて完了(エラーあり)はいエラーエラー

グループの子がグループである場合、その子グループは独自のワークフロー ポリシーに従ってタスクを実行します。 親グループが、親グループのワークフロー ポリシー(つまり、親グループに対して StopOnError、StopOnSuccess、または StopOnSuccessOrError ポリシーが使用された場合)に基づいて実行中の子グループを停止した場合、子グループの結果は、上記の表の [Result] 列および子グループのワークフロー ポリシーの行に従って報告されます。

変数のドキュメント

const QtTaskTree::GroupItem QtTaskTree::continueOnError

ContinueOnError のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess

ContinueOnSuccess のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::ExecutableItem QtTaskTree::errorItem

空、エラー、または同期タスクを含む、便利なグローバル実行可能要素です。

これは、if文内で分岐がエラーで終了することを示す際に役立ちます:

const ExecutableItem conditionalTask = ...;

Group group {
    stopOnError,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        errorItem
    },
    nextTask
};

上記の例では、conditionalTask がエラーで終了した場合、Else の分岐が選択され、これは即座にエラーで終了します。これにより、nextTask がスキップされ(group のstopOnError ワークフローポリシーによる)、group がエラーで終了します。

successItemも参照してください 。

const QtTaskTree::GroupItem QtTaskTree::finishAllAndError

FinishAllAndError のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess

FinishAllAndSuccess のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::GroupItem QtTaskTree::nullItem

ノーオペレーション(no-op)項目を示す、便利なグローバルグループの要素です。

これは、条件式において、オプションの要素が存在しないことを示す際に役立ちます:

const ExecutableItem task = ...;
const std::optional<ExecutableItem> optionalTask = ...;

Group group {
    task,
    optionalTask ? *optionalTask : nullItem
};

const QtTaskTree::ExecutionMode QtTaskTree::parallel

並列実行モードを表す、便利なグローバルグループの要素です。

グループが開始されると、そのグループのすべての子タスクは、前の子タスクが終了するのを待たずに開始されます。このモードでは、すべての子タスクが同時に実行されます。

sequential およびParallelLimitも参照してください 。

const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit

同時に実行されるタスクの数が制限された並列実行モードを表す、便利なグローバルグループの要素です。この制限数は、呼び出しスレッドを除いた理想的なスレッド数に等しくなります。

これは以下と同等です:

ParallelLimit(qMax(QThread::idealThreadCount() - 1, 1))

parallel およびParallelLimitも参照してください 。

const QtTaskTree::ExecutionMode QtTaskTree::sequential

順次実行モードを表す、便利なグローバルグループの要素です。

これは、Group要素のデフォルトの実行モードです。

Groupに実行モードが指定されていない場合、順次モードで実行されます。 グループのすべての子タスクはチェーン状に開始されるため、あるタスクが終了すると、次のタスクが開始されます。これにより、前のタスクの結果を、次のタスクが開始される前の入力として渡すことが可能になります。このモードでは、前のタスクが終了してからでないと、次のタスクが開始されないことが保証されます。

「 parallel 」および「ParallelLimit 」も参照してください 。

const QtTaskTree::GroupItem QtTaskTree::stopOnError

StopOnError のワークフローポリシーを記述する、便利なグローバルグループの要素です。

これは、Group要素のデフォルトのワークフローポリシーです。

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess

StopOnSuccess のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError

StopOnSuccessOrError のワークフローポリシーを記述する、便利なグローバルグループの要素です。

const QtTaskTree::ExecutableItem QtTaskTree::successItem

空で、正常に完了し、同期的なタスクを含む、便利なグローバル実行可能要素です。

これは、if文において分岐が正常に終了することを示す際に役立ちます:

const ExecutableItem conditionalTask = ...;

const Group group {
    stopOnSuccess,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        successItem
    },
    nextTask
};

上記の例では、conditionalTask がエラーで終了した場合、Else の分岐が選択され、これは直ちに正常に終了します。これにより、nextTask はスキップされ(group のstopOnSuccess ワークフローポリシーによる)、group が正常に終了します。

errorItemも参照してください 。

関数のドキュメント

QtTaskTree::ExecutableItem QtTaskTree::barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)

storedBarrier の処理が完了した時点で終了するアウェイタータスクを返します。

注: 渡されたstoredBarrier は 、返されるタスクと同階層のレシピ内、または任意の祖先Group 内に配置する必要があります。そうしないと、クラッシュする可能性があります。

template <typename Signal> QtTaskTree::ObjectSignal<std::decay_t<Signal>> QtTaskTree::makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)

ExecutableItem::withCancel() またはExecutableItem::withAccept() に渡されるObjectSignalGetter 関数内で、ObjectSignal を作成するための便利な関数です。object とそのsignal を渡すことで、ObjectSignal 構造体のインスタンスを作成します。

ObjectSignal 、ExecutableItem::withCancel()、およびExecutableItem::withAccept()も参照してください 。

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)

グループの完了ハンドラを保持するグループの要素を構築します。デフォルトでは、グループが終了するたびに `handler ` が呼び出されます。 実行が成功、失敗、またはキャンセルされた場合にのみハンドラを呼び出したい場合は、callDone 引数にデフォルト値以外の値を指定します。グループのワークフローポリシーによっては、実行中のグループがキャンセルされた場合(例:stopOnError 要素が使用された場合)にも、このハンドラが呼び出されることがあります。

渡されるhandler は、std::function<DoneResult(DoneWith)> 型です。オプションとして、DoneResult 型の戻り値またはDoneWith 型の引数のいずれかを省略することができます(つまり、その戻り値型はvoid とすることができます)。使用可能なハンドラ型に関する詳細については、GroupItem::GroupDoneHandler を参照してください。

handler が呼び出される時点では、そのグループの子タスクはすべてすでに完了しています。

グループに Storage 要素が含まれている場合、handler はストレージが破棄される前に呼び出されるため、handler はアクティブなストレージのデータに対して最後の読み取りを実行することができます。

「 GroupItem::GroupDoneHandler 」および「onGroupSetup()」も参照してください 。

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupSetup(Handler &&handler)

グループの設定ハンドラを保持するグループ要素を構築します。handler は、グループが起動するたびに呼び出されます。

渡されるhandler は、std::function<SetupResult()> 型またはstd::function<void()> 型のいずれかです。使用可能なハンドラ型に関する詳細については、GroupItem::GroupSetupHandler を参照してください。

handler が呼び出される時点では、グループの子タスクはいずれもまだ実行されていません。

グループに Storage 要素が含まれている場合、handler はストレージが構築された後に呼び出されるため、handler はアクティブなストレージに対してすでにいくつかの初期変更を行っている可能性があります。

「 GroupItem::GroupSetupHandler 」および「onGroupDone()」も参照してください 。

template <typename Signal> QtTaskTree::ExecutableItem QtTaskTree::signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)

sender がsignal を発行した時点で完了するアウェイタータスクを返します。

注: 渡されたsender およびsignal への接続は 、返されたタスクが作成されたときやレシピに配置されたときではなく、QTaskTree によってタスクが開始されたときに確立されます。渡されたsender が、返されたタスクを含む実行中のタスクツリーよりも長く存続するようにしてください。signal がタスクの開始前、つまり接続が確立される前に発行された場合、タスクは、タスクの開始後にsignal が最初に発行された時点で終了します。

QtTaskTree::ExecutableItem QtTaskTree::timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)

timeout の持続時間を持つQTimeoutTask を作成し、その時間が経過すると、タスクはresult で終了します。

「QTimeoutTask」も参照してください 。

QtTaskTree::GroupItem QtTaskTree::workflowPolicy(QtTaskTree::WorkflowPolicy policy)

指定されたpolicy に対して、グループのworkflow policy 要素を構築します。

便宜上、代わりにグローバル要素を使用することもできます。

stopOnError 、continueOnError 、stopOnSuccess 、continueOnSuccess 、stopOnSuccessOrError 、finishAllAndSuccess 、finishAllAndError 、およびWorkflowPolicyも参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.