TaskTree: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Tools::QtCreator]]
[[Category:Tools::QtCreator]]


==TaskTree - generic solution for automatic management of asynchronous task (C++)==
==TaskTree - generic solution for automatic management of asynchronous tasks (C++)==
TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types.
TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types.


Line 8: Line 8:
The recipes are enclosed in copyable value-type objects and may be run many times, or be part of more general recipes.
The recipes are enclosed in copyable value-type objects and may be run many times, or be part of more general recipes.


The TaskTree is currently broadly used in QtCreator, for executing Build / Deploy configurations, Locator filter, Clang tool, Autotests, and much more...
The TaskTree is broadly used in QtCreator, for executing Build / Deploy configurations, Locator filter, Clang tool, Autotests, driving Axivion plugin's communication and much more...


The TaskTree's implementation is separated from the QtCreator specific code and may already serve as a general purpose solution outside of QtCreator.
The TaskTree's implementation is separated from the QtCreator specific code and may already serve as a general purpose solution outside of QtCreator.
Notes from the presentation/discussion at Qt Contributors Summit 2023: [[TaskTree CS23]]


== More Info ==
== More Info ==
Line 28: Line 30:
|-
|-
| ImageScaling diff || https://codereview.qt-project.org/c/qt-creator/qt-creator/+/481573 || Difference in the implementation of the ImageScaling example using QFuture::then() and TaskTree
| ImageScaling diff || https://codereview.qt-project.org/c/qt-creator/qt-creator/+/481573 || Difference in the implementation of the ImageScaling example using QFuture::then() and TaskTree
|-
| TrafficLight || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/trafficlight || An alternative implementation of https://doc.qt.io/qt-6/qtscxml-trafficlight-widgets-static-example.html using TaskTree
|-
| DataExchange || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/dataexchange || An example for a reusable TaskTree recipe
|-
|-
| Suggestions || https://bugreports.qt.io/browse/QTCREATORBUG-28741
| Suggestions || https://bugreports.qt.io/browse/QTCREATORBUG-28741


|}
|}
[[File:TaskTree.jpg|thumb|The first public TaskTree presentation on Sep 28th 2023 at Felgo office, Vienna.]]

Latest revision as of 11:51, 2 March 2024


TaskTree - generic solution for automatic management of asynchronous tasks (C++)

TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types.

The recipe on how to run and manage the conglomerate of tasks is described in a declarative way in C++.

The recipes are enclosed in copyable value-type objects and may be run many times, or be part of more general recipes.

The TaskTree is broadly used in QtCreator, for executing Build / Deploy configurations, Locator filter, Clang tool, Autotests, driving Axivion plugin's communication and much more...

The TaskTree's implementation is separated from the QtCreator specific code and may already serve as a general purpose solution outside of QtCreator.

Notes from the presentation/discussion at Qt Contributors Summit 2023: TaskTree CS23

More Info

Content Link Additional Info
Documentation https://doc-snapshots.qt.io/qtcreator-extending/taskingsolution-module.html
Sources https://github.com/qt-creator/qt-creator/tree/master/src/libs/solutions/tasking
Autotests https://github.com/qt-creator/qt-creator/tree/master/tests/auto/solutions/tasking
Demo https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/demo
ImageScaling https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/imagescaling An alternative implementation of https://doc.qt.io/qt-6/qtconcurrent-imagescaling-example.html using TaskTree
ImageScaling diff https://codereview.qt-project.org/c/qt-creator/qt-creator/+/481573 Difference in the implementation of the ImageScaling example using QFuture::then() and TaskTree
TrafficLight https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/trafficlight An alternative implementation of https://doc.qt.io/qt-6/qtscxml-trafficlight-widgets-static-example.html using TaskTree
DataExchange https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/dataexchange An example for a reusable TaskTree recipe
Suggestions https://bugreports.qt.io/browse/QTCREATORBUG-28741
The first public TaskTree presentation on Sep 28th 2023 at Felgo office, Vienna.