TaskTree: Refactor Group internal data

Introduce the GroupData structure. In this way it's easily
possible to add extra properties of already used types, e.g. int.

It's also possible to easily create elements with multiple
properties.

Simplify internal TaskItem::Type enum.

Get rid of special ParallelLimit and Workflow elements.
Provide global parallelLimit() and workflowPolicy() functions.

Make global items (e.g. parallel, stopOnDone, etc...) const.

Change-Id: Ic5628255b542fd6c5a5565b055ff11804c8d7b68
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2023-05-18 13:16:40 +02:00
parent 56fda87389
commit c098b261dc
11 changed files with 121 additions and 123 deletions

View File

@@ -171,14 +171,14 @@ int main(int argc, char *argv[])
const Group root {
rootGroup->executeMode(),
Workflow(rootGroup->workflowPolicy()),
workflowPolicy(rootGroup->workflowPolicy()),
onGroupSetup([rootGroup] { rootGroup->setState(State::Running); }),
onGroupDone([rootGroup] { rootGroup->setState(State::Done); }),
onGroupError([rootGroup] { rootGroup->setState(State::Error); }),
Group {
groupTask_1->executeMode(),
Workflow(groupTask_1->workflowPolicy()),
workflowPolicy(groupTask_1->workflowPolicy()),
onGroupSetup([groupTask_1] { groupTask_1->setState(State::Running); }),
onGroupDone([groupTask_1] { groupTask_1->setState(State::Done); }),
onGroupError([groupTask_1] { groupTask_1->setState(State::Error); }),
@@ -191,7 +191,7 @@ int main(int argc, char *argv[])
taskItem(task_3),
Group {
groupTask_4->executeMode(),
Workflow(groupTask_4->workflowPolicy()),
workflowPolicy(groupTask_4->workflowPolicy()),
onGroupSetup([groupTask_4] { groupTask_4->setState(State::Running); }),
onGroupDone([groupTask_4] { groupTask_4->setState(State::Done); }),
onGroupError([groupTask_4] { groupTask_4->setState(State::Error); }),
@@ -200,7 +200,7 @@ int main(int argc, char *argv[])
taskItem(task_4_2),
Group {
groupTask_4_3->executeMode(),
Workflow(groupTask_4_3->workflowPolicy()),
workflowPolicy(groupTask_4_3->workflowPolicy()),
onGroupSetup([groupTask_4_3] { groupTask_4_3->setState(State::Running); }),
onGroupDone([groupTask_4_3] { groupTask_4_3->setState(State::Done); }),
onGroupError([groupTask_4_3] { groupTask_4_3->setState(State::Error); }),