QTaskInterface Class

QTaskInterface is a helper class used when adapting custom task's interface. More...

Header: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Since: Qt 6.11
Inherits: QObject
Status: Technical Preview

Note: All functions in this class are reentrant.

Public Functions

void reportDone(QtTaskTree::DoneResult result)

Detailed Description

The custom Adapter type of the QCustomTask<Task, Adapter, Deleter> template is expected to have the following form, when adapting Worker task:

 class WorkerTaskAdapter
 {
 public:
     void operator()(Worker *task, QTaskInterface *iface) { ... }
 };

 using WorkerTask = QCustomTask<Worker, WorkerTaskAdapter>;

Member Function Documentation

void QTaskInterface::reportDone(QtTaskTree::DoneResult result)

This method should be called when the task adapted via custom adapter is finished, passing the result of the task execution.

Assuming the Worker emits a finished(bool) signal, the adapter may look like:

 class WorkerTaskAdapter
 {
 public:
     void operator()(Worker *task, QTaskInterface *iface) {
         connect(task, &Worker::finished, iface, [iface](bool success) {
             iface->reportDone(QtTaskTree::toDoneResult(success));
         });
         task->execute();
     }
 };

 using WorkerTask = QCustomTask<Worker, WorkerTaskAdapter>;

See also QCustomTask.