TaskTree: Difference between revisions
mNo edit summary |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:Tools::QtCreator]] | [[Category:Tools::QtCreator]] | ||
== | ==Qt Task Tree - generic solution for automatic management of asynchronous tasks (C++), by Jarek Kobus== | ||
TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types, including running processes, network queries, functions in separate threads, animations, timers, and so on... It's easily extensible with any other types of asynchronous tasks. | TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types, including running processes, network queries, functions in separate threads, animations, timers, and so on... It's easily extensible with any other types of asynchronous tasks. | ||
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 broadly used in QtCreator, for executing Build / Deploy configurations, Locator filter, Clang tool, Autotests, driving Axivion plugin's communication and much more... | The TaskTree is broadly used in QtCreator, for executing Build / Deploy / Run configurations, Locator filter, Clang tool, VCS commands, Autotests, driving Axivion plugin's communication and much more... | ||
The TaskTree | The TaskTree will be included in Qt 6.11 as a new '''QtTaskTree''' module. | ||
Notes from the presentation/discussion at Qt Contributors Summit 2023: [[TaskTree CS23]] | Notes from the presentation/discussion at Qt Contributors Summit 2023: [[TaskTree CS23]] | ||
Line 23: | Line 23: | ||
| Presentation '24 || https://qt-wiki-uploads.s3.amazonaws.com/images/5/56/TaskTreePresentation.pdf | | Presentation '24 || https://qt-wiki-uploads.s3.amazonaws.com/images/5/56/TaskTreePresentation.pdf | ||
|- | |- | ||
| Documentation || https://doc-snapshots.qt.io/ | | Documentation || https://doc-snapshots.qt.io/qt6-dev/qttasktree-index.html || Ref docs: https://doc-snapshots.qt.io/qt6-dev/tasktree-module.html | ||
|- | |- | ||
| Sources || https:// | | Sources || https://code.qt.io/cgit/qt/qttasktree.git/ | ||
|- | |- | ||
| Autotests || https:// | | Autotests || https://code.qt.io/cgit/qt/qttasktree.git/tree/tests/auto/tasktree || Includes more than 250 test cases | ||
|- | |- | ||
| Demo || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/demo | | Demo || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/demo | ||
Line 41: | Line 41: | ||
| DataExchange || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/dataexchange || An example of a reusable TaskTree recipe | | DataExchange || https://github.com/qt-creator/qt-creator/tree/master/tests/manual/tasking/dataexchange || An example of a reusable TaskTree recipe | ||
|- | |- | ||
| Suggestions || https://bugreports.qt.io/ | | Suggestions || https://bugreports.qt.io/issues/?jql=project%20%3D%20QTBUG%20AND%20component%20%3D%20%22Task%20Tree%22 | ||
|} | |} | ||
[[File:TaskTree.jpg|thumb|The first public TaskTree presentation on Sep 28th 2023 at Felgo office, Vienna.]] | [[File:TaskTree.jpg|thumb|The first public TaskTree presentation on Sep 28th 2023 at Felgo office, Vienna.]] | ||
[[File:Spyrosoft.jpeg|thumb|TaskTree presentation in Technopark Pomerania at the invitation of Spyrosoft on Oct 18th 2023.]] | [[File:Spyrosoft.jpeg|thumb|TaskTree presentation in Technopark Pomerania at the invitation of Spyrosoft on Oct 18th 2023.]] |
Latest revision as of 08:09, 8 October 2025
Qt Task Tree - generic solution for automatic management of asynchronous tasks (C++), by Jarek Kobus
TaskTree automatically manages a chain (or a tree) of asynchronous tasks of mixed types, including running processes, network queries, functions in separate threads, animations, timers, and so on... It's easily extensible with any other types of asynchronous tasks.
The recipe on how to create, 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 / Run configurations, Locator filter, Clang tool, VCS commands, Autotests, driving Axivion plugin's communication and much more...
The TaskTree will be included in Qt 6.11 as a new QtTaskTree module.
Notes from the presentation/discussion at Qt Contributors Summit 2023: TaskTree CS23
Notes from the presentation/discussion at Qt Contributors Summit 2024: QtCS2024 TaskTree