En esta página

QtTaskTree::ExecutableItem Class

class QtTaskTree::ExecutableItem

Clase base para elementos de tareas ejecutables. Más...

Cabecera: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Desde: Qt 6.11
Hereda de: QtTaskTree::GroupItem
Heredado de:

QtTaskTree::Forever, QtTaskTree::Group, QtTaskTree::QCustomTask, y QtTaskTree::QSyncTask

Nota: Todas las funciones de esta clase son reentrantes.

Funciones Públicas

QtTaskTree::Group withAccept(ObjectSignalGetter &&getter) const
QtTaskTree::Group withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const
QtTaskTree::Group withLog(const QString &logName) const
QtTaskTree::Group withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

Descripción detallada

ExecutableItem proporciona una interfaz adicional para elementos que contienen tareas ejecutables. Utilice withTimeout() para adjuntar un tiempo de espera a una tarea. Utilice withLog() para incluir información de depuración sobre el inicio de la tarea y el resultado de la ejecución.

Documentación de las funciones miembro

template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withAccept(ObjectSignalGetter &&getter) const

Devuelve una copia de this ExecutableItem acoplada a una señal de espera. El getter pasado es una función que devuelve un ObjectSignal que describe el emisor y su señal de espera. Utilice makeObjectSignal() dentro de getter para crear un objeto ObjectSignal.

Cuando this ExecutableItem termina con un error, el Group devuelto termina inmediatamente con un error, sin esperar la señal del awaiter.

Cuando this ExecutableItem finaliza con éxito, el objeto devuelto Group no finaliza inmediatamente, sino que espera a que se envíe la señal de espera. Una vez enviada la señal de espera, el Group devuelto finaliza con éxito. Si la señal de espera se envía antes de que this ExecutableItem finalice, la fase de espera se omite y el Group devuelto finaliza de forma sincrónica.

La conexión con la señal de espera se establece cuando this ExecutableItem está a punto de iniciarse. Si la señal de espera se lanzó antes, esto no se notará después de que se inicie this ExecutableItem .

template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const

Hace cancelable una copia de this ExecutableItem . El getter pasado es una función que devuelve un ObjectSignal que describe el emisor y su señal de cancelación. Utiliza makeObjectSignal() dentro de getter para crear un objeto ObjectSignal. Cuando se emite la señal de cancelación, this ExecutableItem se cancela, se ejecuta un postCancelRecipe proporcionado opcionalmente, y el grupo devuelto finaliza con un error.

Si this ExecutableItem finaliza antes de que se emita la señal de cancelación, el grupo devuelto finaliza inmediatamente con el mismo resultado que this ExecutableItem . En este caso, se omite la opción postCancelRecipe.

La conexión con la señal de cancelación se establece cuando this ExecutableItem está a punto de iniciarse. Si la señal de cancelación se activó antes, esto no se notará después de que se inicie this ExecutableItem .

QtTaskTree::Group ExecutableItem::withLog(const QString &logName) const

Adjunta una impresión de depuración personalizada a una copia de this ExecutableItem , emitida al inicio de la tarea y una vez finalizada, y devuelve el elemento acoplado.

La impresión de depuración incluye una marca de tiempo del evento (inicio o fin) y logName para identificar la tarea específica en el registro de depuración.

La impresión de fin contiene la información adicional de si la ejecución fue síncrona o asíncrona, su resultado (el valor descrito por el enum DoneWith ), y el tiempo total de ejecución en milisegundos.

QtTaskTree::Group ExecutableItem::withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const

Adjunta QTimeoutTask a una copia de this ExecutableItem , transcurre después de timeout en milisegundos, con un tiempo de espera opcionalmente proporcionado handler, y devuelve el elemento acoplado.

Cuando ExecutableItem termina antes de que pase timeout, el elemento devuelto termina inmediatamente con el resultado de la tarea. De lo contrario, se invoca handler (si se proporciona), se cancela la tarea y el elemento devuelto finaliza con un error.

No miembros relacionados

QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)

Devuelve un Grupo con la DoneResult de item negada.

Si item indica DoneResult::Success, el elemento devuelto indica DoneResult::Error. Si item indica DoneResult::Error, el elemento devuelto indica DoneResult::Success.

El elemento devuelto es equivalente a:

Group {
    item,
    onGroupDone([](DoneWith doneWith) { return toDoneResult(doneWith == DoneWith::Error); })
}

Véase también operator&&() y operator||().

QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)

Devuelve un Grupo con first y second tareas fusionadas con conjunción.

Ambas tareas first y second se ejecutan en secuencia. Si ambas tareas informan DoneResult::Success, el elemento devuelto informa DoneResult::Success. De lo contrario, el elemento devuelto informa DoneResult::Error.

El elemento devuelto es un cortocircuito: si la tarea first informa DoneResult::Error, la tarea second se omite, y el elemento devuelto informa DoneResult::Error inmediatamente.

El elemento devuelto es equivalente a:

Group { stopOnError, first, second }

Nota: La ejecución paralela de conjunción en cortocircuito se puede lograr con el siguiente código: Group { parallel, stopOnError, first, second }. En este caso: si la primera tarea terminada informa DoneResult::Error, la otra tarea se cancela, y el grupo informa DoneResult::Error inmediatamente.

Véase también operator||() y operator!().

QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

Devuelve la tarea item si result es DoneResult::Success; de lo contrario devuelve la tarea item con su resultado ajustado a DoneResult::Error.

task && DoneResult::Error es equivalente a modificar el resultado de la tarea a DoneResult::Error incondicionalmente.

Esta función sobrecarga ExecutableItem::operator&&().

QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)

Devuelve un Grupo con las tareas first y second fusionadas con disyunción.

Las tareas first y second se ejecutan en secuencia. Si ambas tareas informan DoneResult::Error, el elemento devuelto informa DoneResult::Error. En caso contrario, el elemento devuelto es DoneResult::Success.

El elemento devuelto es un cortocircuito: si la tarea first informa DoneResult::Success, la tarea second se omite y el elemento devuelto informa DoneResult::Success inmediatamente.

El elemento devuelto es equivalente a:

Group { stopOnSuccess, first, second }

Nota: La ejecución paralela de la disyunción en cortocircuito puede lograrse con el siguiente código: Group { parallel, stopOnSuccess, first, second }. En este caso si la primera tarea terminada informa DoneResult::Success, la otra tarea se cancela, y el grupo informa DoneResult::Success inmediatamente.

Véase también operator&&() y operator!().

QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

Devuelve la tarea item si result es DoneResult::Error; de lo contrario devuelve la tarea item con su resultado ajustado a DoneResult::Success.

task || DoneResult::Success es equivalente a modificar el resultado de la tarea a DoneResult::Success incondicionalmente.

Esta función sobrecarga ExecutableItem::operator||().

© 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.