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 |
クラス
(since 6.11) class | Do |
(since 6.11) class | Else |
(since 6.11) class | ElseIf |
(since 6.11) class | ExecutableItem |
(since 6.11) class | ExecutionMode |
(since 6.11) class | For |
(since 6.11) class | Forever |
(since 6.11) class | ForeverIterator |
(since 6.11) class | Group |
(since 6.11) class | GroupItem |
(since 6.11) class | If |
(since 6.11) class | Iterator |
(since 6.11) class | ListIterator |
(since 6.11) struct | ObjectSignal |
(since 6.11) class | ParallelLimit |
(since 6.11) class | QBarrier |
(since 6.11) class | QCustomTask |
(since 6.11) class | QDefaultTaskAdapter |
(since 6.11) class | QMappedTaskTreeRunner |
(since 6.11) class | QNetworkReplyWrapper |
(since 6.11) class | QParallelTaskTreeRunner |
(since 6.11) class | QProcessTaskDeleter |
(since 6.11) class | QSequentialTaskTreeRunner |
(since 6.11) class | QSingleTaskTreeRunner |
(since 6.11) class | QStartedBarrier |
(since 6.11) class | QSyncTask |
(since 6.11) class | QTaskInterface |
(since 6.11) class | QTaskTree |
(since 6.11) class | QTcpSocketWrapper |
(since 6.11) class | QThreadFunction |
(since 6.11) class | QThreadFunctionBase |
(since 6.11) class | RepeatIterator |
(since 6.11) class | Storage |
(since 6.11) class | Then |
(since 6.11) class | UntilIterator |
(since 6.11) 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) |
クラス
クラスDo
For や When コンストラクトで使用されるボディ要素。詳細...
クラスElse
条件式で使用される "else" 要素。詳細
クラスElseIf
条件式で使用される "else if" 要素です。詳細はこちら
クラスExecutableItem
実行可能なタスクアイテムの基底クラスです。詳細はこちら
クラスExecutionMode
実行モードを記述するグループ要素です。詳細はこちら
クラスFor
forループの要素です。詳細はこちら
クラスForever
サブタスクの無限ループ詳細はこちら
クラスForeverIterator
For要素の内部で使用される無限イテレータです。詳細はこちら
クラスGroup
非同期タスクのネストしたツリーをどのように実行し、処理するかを記述する宣言的なレシピを構成するための基本的な要素を表します。詳細
クラスGroupItem
GroupItem は、Group の一部となる基本要素を表します。詳細
クラスIf
条件式で使用される "if "要素。詳細はこちら
クラスIterator
For 要素の内部でイテレータとして使用される基本クラスです。詳細はこちら
クラスListIterator
For 要素の内部で使用するリスト・イテレータです。詳細はこちら
クラスObjectSignal
QObject のサブクラスとそのシグナルを記述する構造体。詳細
クラスParallelLimit
カスタムリミットを持つ並列実行モード。詳細
クラスQBarrier
オンデマンドで終了する非同期タスク。詳細はこちら
クラスQCustomTask
カスタムタスクアイテムを宣言し、そのセットアップと完了ハンドラを定義するためのクラステンプレート。詳細
クラスQDefaultTaskAdapter
QCustomTask で使われるデフォルトのタスクアダプタを提供するクラステンプレート。詳細...
クラスQMappedTaskTreeRunner
与えられた Key タイプを持つマップされたタスクツリー実行コントローラです。詳細...
クラスQNetworkReplyWrapper
QNetworkReply とQNetworkAccessManager のラッパーです。詳細
クラスQParallelTaskTreeRunner
並列タスクツリー実行コントローラです。詳細
クラスQProcessTaskDeleter
QProcessTask で使用されるQProcess 用のカスタムデレッタです。詳細...
クラスQSequentialTaskTreeRunner
逐次タスクツリー実行コントローラです。詳細
クラスQSingleTaskTreeRunner
単一タスクツリー実行コントローラです。詳細はこちら
クラスQStartedBarrier
クラスQSyncTask
他のタスクの間でカスタムハンドラを同期実行します。詳細
クラスQTaskInterface
QTaskInterface はカスタムタスクのインターフェイスを適応する際に使用するヘルパークラスです。詳細はこちら
クラスQTaskTree
QTaskTree クラスは宣言的な方法で定義された非同期タスクのツリーを実行します。詳細
クラスQTcpSocketWrapper
QTcpSocket のラッパーです。詳細はこちら
クラスQThreadFunction
QtConcurrent::run() による別スレッドでの関数の実行を制御するクラステンプレートです。詳細
クラスQThreadFunctionBase
QThreadFunction クラステンプレートの基底クラスです。詳細はこちら
クラスRepeatIterator
For 要素の内部で使用される反復イテレータです。詳細
クラスStorage
実行中のタスクツリーでカスタムデータ交換を行うためのクラステンプレート。詳細
クラスThen
条件式で使われる "then "要素。詳細
クラスUntilIterator
For 要素の内部で使用される条件式イテレータ。詳細はこちら
クラスWhen
バリアが進むまで本体の実行を遅延させる要素。詳細
型のドキュメント
[alias] BarrierKickerGetter
QStoredBarrier を受け取り、ExecutableItem を返す関数、すなわちstd::function<ExecutableItem(const QStoredBarrier &)> の型エイリアス。When コンストラクタ内部で使用します。
enum class QtTaskTree::CallDoneFlag
flags QtTaskTree::CallDone
この enum は、onGroupDone() 要素またはカスタムタスクのコンストラクタのオプション引数です。これは、グループまたはタスクの done ハンドラがいつ呼び出されるべきかをタスクツリーに指示します。
| 定数 | 値 | 説明 |
|---|---|---|
QtTaskTree::CallDoneFlag::Never | 0 | done ハンドラは起動されない。 |
QtTaskTree::CallDoneFlag::OnSuccess | 1 << 0 | done ハンドラは実行に成功した後、つまりDoneWith::Success の時のみ起動されます。 |
QtTaskTree::CallDoneFlag::OnError | 1 << 1 | done ハンドラは、実行に失敗した後、つまりDoneWith::Error のときにのみ呼び出される。 |
QtTaskTree::CallDoneFlag::OnCancel | 1 << 2 | doneハンドラは、実行がキャンセルされた後にのみ、つまりDoneWith::Cancel のときにのみ呼び出される。 |
QtTaskTree::CallDoneFlag::Always | OnSuccess | OnError | OnCancel | done ハンドラは常に呼び出される。 |
CallDone 型はQFlags<CallDoneFlag> の typedef です。CallDoneFlag 値の OR の組み合わせを格納します。
enum class QtTaskTree::DoneResult
この列挙型は、グループまたはタスクの done ハンドラ関数からオプションで返される。done ハンドラーが値を返さない場合、つまり戻り値の型がvoid の場合、その最終的な戻り値は実行中のタスクツリーによって自動的に推測され、親グループに報告されます。
done ハンドラーが DoneResult を返す場合、ハンドラー内部で最終的な戻り値を微調整することができます。
グループの done ハンドラから DoneResult が返された場合、グループのワークフローポリシーは無視される。
この列挙型は、TaskInterface::done() シグナル内部でも使用され、タスクが成功で終了したかエラーで終了したかを示します。
| 定数 | 値 | 説明 |
|---|---|---|
QtTaskTree::DoneResult::Success | 0 | グループまたはタスクの実行が成功で終了した。 |
QtTaskTree::DoneResult::Error | 1 | グループまたはタスクの実行はエラーで終了します。 |
enum class QtTaskTree::DoneWith
この列挙型はグループまたはタスクの done ハンドラのオプション引数である。グループやタスクが成功で終了したのか、エラーで終了したのか、キャンセルされたのかを示します。
また、QTaskTree の実行の最終結果を示すQTaskTree::done() シグナル内の引数としても使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QtTaskTree::DoneWith::Success | 0 | グループまたはタスクの実行が成功で終了した。 |
QtTaskTree::DoneWith::Error | 1 | グループまたはタスクの実行がエラーで終了した。 |
QtTaskTree::DoneWith::Cancel | 2 | グループまたはタスクの実行がキャンセルされた。これは、ユーザが実行中のタスクツリーに対してQTaskTree::cancel() をコールした場合や、グループのワークフローポリシーによって実行中の子タスクの一部がキャンセルされた場合に発生します。グループまたはタスクの実行がキャンセルされた場合、ハンドラからDoneResult を返すことで done ハンドラの最終結果を調整することはできません。 |
[alias] QtTaskTree::GroupItems
[alias] QBarrierTask
レシピの中で使われる、QCustomTask<QBarrier> のエイリアスをタイプする。
[alias] QNetworkReplyWrapperTask
レシピの中で使われる、QCustomTask<QNetworkReplyWrapper> のエイリアスをタイプする。
[alias] QProcessTask
QProcessTaskDeleter を使って、QCustomTask<QProcess> のエイリアスを作り、レシピの中で使う。
[alias] QStoredBarrier
レシピの中で使われる、QtTaskTree::Storage<QStartedBarrier> のエイリアスをタイプする。
[alias] QTaskTreeTask
レシピの中で使われる、QCustomTask<QTaskTree> のエイリアスをタイプする。
[alias] QTcpSocketWrapperTask
レシピの中で使われる、QCustomTask<QTcpSocketWrapper> のエイリアスをタイプする。
[alias] template <typename ResultType> QThreadFunctionTask
QCustomTask<QThreadFunction<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::Continue | 0 | デフォルトグループまたはタスクの実行は正常に続行されます。グループまたはタスクのセットアップハンドラがvoidを返した場合、Continueを返したとみなされます。 |
QtTaskTree::SetupResult::StopWithSuccess | 1 | グループまたはタスクの実行は、成功すると直ちに停止します。グループのセットアップ・ハンドラから返されると、すべての子タスクがスキップされ、グループのonGroupDone() ハンドラがDoneWith::Success で呼び出されます。グループは親に成功を報告する。グループのワークフロー・ポリシーは無視される。タスクのセットアップハンドラから戻された時、タスクは開始されず、その done ハンドラは起動されず、タスクはその親に成功を報告する。 |
QtTaskTree::SetupResult::StopWithError | 2 | グループまたはタスクの実行はエラーで直ちに停止する。グループのセットアップ・ハンドラから返されると、すべての子タスクがスキップされ、グループの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::StopOnError | 0 | デフォルト。stopOnError グローバル要素に対応します。いずれかの子タスクがエラーで終了した場合、グループは停止し、エラーで終了します。すべての子タスクが成功で終了した場合、グループは成功で終了します。グループが空の場合は、成功で終了します。 |
QtTaskTree::WorkflowPolicy::ContinueOnError | 1 | continueOnError グローバル要素に対応する。stopOnError と似ていますが、子タスクがエラーで終了した場合、すべてのタスクが終了するまで実行は続行され、グループ内の他のタスクが成功で終了した場合でも、グループは終了後にエラーを報告します。すべての子タスクが成功裏に終了すると、グループは成功裏に終了する。グループが空の場合は、成功で終了する。 |
QtTaskTree::WorkflowPolicy::StopOnSuccess | 2 | stopOnSuccess グローバル要素に対応します。いずれかの子タスクが成功で終了すると、グループは停止し、成功で終了します。すべての子タスクがエラーで終了した場合、グループはエラーで終了します。グループが空の場合、エラーで終了します。 |
QtTaskTree::WorkflowPolicy::ContinueOnSuccess | 3 | continueOnSuccess グローバル要素に対応する。stopOnSuccess と似ていますが、子タスクが 1 つでも成功で終了した場合、すべてのタスクが終了するまで実行が続行され、グループ内の他のタスクがエラーで終了した場合でも、その後グループは成功を報告します。すべての子タスクがエラーで終了した場合、グループはエラーで終了する。グループが空の場合は、エラーで終了する。 |
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError | 4 | stopOnSuccessOrError グローバル要素に対応します。グループは可能な限り多くのタスクを開始する。タスクが終了すると、グループは停止し、タスクの結果を報告する。並列モードでのみ有用。逐次モードでは、最初のタスクだけが開始され、終了するとグループも終了するので、他のタスクは常にスキップされる。グループが空の場合、エラーで終了する。 |
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess | 5 | finishAllAndSuccess グローバル要素に対応する。グループはすべてのタスクを実行し、その戻り結果は無視する。すべてのタスクが終了すると、グループは成功で終了します。グループが空の場合、成功で終了します。 |
QtTaskTree::WorkflowPolicy::FinishAllAndError | 6 | finishAllAndError グローバル要素に対応します。グループはすべてのタスクを実行し、そのリターン結果は無視する。すべてのタスクが終了すると、グループはエラーで終了します。グループが空の場合、エラーで終了する。 |
子タスクの結果によってグループが停止する場合(StopOnError、StopOnSuccess、StopOnSuccessOrError ポリシーの場合)、グループは実行中の他の子タスクをキャンセルし(並列モードの場合など)、まだ開始していないタスクの実行をスキップします(逐次モードの場合など、失敗したタスクの後にあるタスク)。子タスクのキャンセルとスキップは、ParallelLimit 。
以下の表は、様々なワークフロー ポリシーの違いをまとめたものです:
| ワークフロー ポリシー | すべての子タスクを実行 | 結果 | グループが空の場合の結果 |
|---|---|---|---|
| StopOnError | 子タスクがエラーで終了した場合に停止し、エラーを報告する | 少なくとも1つの子タスクが失敗するとエラー、そうでなければ成功 | 成功 |
| ContinueOnError | はい | 子タスクが1つでも失敗するとエラー、そうでなければ成功 | 成功 |
| StopOnSuccess | 子タスクが成功で終了すると停止し、成功を報告する | 少なくとも1つの子タスクが成功すると成功、そうでなければエラー | エラー |
| ContinueOnSuccess | 成功 | 少なくとも1つの子タスクが成功したら成功、そうでなければエラー | エラー |
| StopOnSuccessOrError | いずれかの子タスクが終了したときに停止し、子タスクの結果を報告する | 終了した子タスクの結果に応じて、成功またはエラー | エラー |
| 終了AllAndSuccess | 成功 | 成功 | 成功 |
| すべて終了とエラー | はい | エラー | エラー |
グループの子もグループである場合、子グループは自身のワークフローポリシーに 従ってタスクを実行する。親グループのワークフロー ポリシーにより、親グループが実行中の子グループを停止した場合、つまり、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
省略できない項目を示す便利なグローバルグループの要素。
これは条件式で、省略可能な要素がないことを示すのに便利です:
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
同時に実行されるタスクの数に制限がある並列実行モードを記述する便利なグローバルグループの要素。制限は、呼び出しスレッドを除いた理想的なスレッド数に等しい。
へのショートカットです:
parallel およびParallelLimitも参照のこと 。
const QtTaskTree::ExecutionMode QtTaskTree::sequential
逐次実行モードを記述する便利なグローバルグループの要素。
これはGroup要素のデフォルトの実行モードです。
グループに実行モードがない場合は、逐次実行モードで実行されます。グループの直接の子タスクはすべて連鎖的に開始され、1つのタスクが終了すると次のタスクが開始されます。これにより、次のタスクが開始する前に、前のタスクの結果を入力として渡すことができる。このモードでは、前のタスクが終了した後にのみ次のタスクが開始されることが保証される。
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 を作成するための便利な関数。ObjectSignal 構造体のインスタンスを作成するには、object とそのsignal を渡します。
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 はStorageが破棄される前に呼び出されます。そのため、handler はアクティブなStorageのデータの最後の読み取りを実行することができます。
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 はStorageが構築された後に呼び出されるので、handler はすでにアクティブなStorageに対して何らかの初期修正を実行している可能性がある。
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.