QtTaskTree::ExecutableItem Class
class QtTaskTree::ExecutableItemClasse de base pour les éléments de tâches exécutables. Plus d'informations...
| En-tête : | #include <qtasktree.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS TaskTree)target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake : | QT += tasktree |
| Depuis : | Qt 6.11 |
| Hérite : | QtTaskTree::GroupItem |
| Hérité par : | QtTaskTree::Forever, QtTaskTree::Group, QtTaskTree::QCustomTask, et QtTaskTree::QSyncTask |
Remarque : toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| 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 |
Non-membres associés
| 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) |
Description détaillée
ExecutableItem fournit une interface supplémentaire pour les éléments contenant des tâches exécutables. Utilisez withTimeout() pour associer un délai d'attente à une tâche. Utilisez withLog() pour inclure des informations de débogage sur le démarrage de la tâche et le résultat de l'exécution.
Documentation des fonctions membres
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withAccept(ObjectSignalGetter &&getter) const
Renvoie une copie de this ExecutableItem couplée à un émetteur de signaux. L'objet getter transmis est une fonction renvoyant un objet ObjectSignal qui décrit l'émetteur et son signal en attente. Utilisez makeObjectSignal() à l'intérieur de getter pour créer un objet ObjectSignal.
Lorsque this ExecutableItem se termine par une erreur, le Group renvoyé se termine immédiatement par une erreur, sans attendre le signal de l'attendeur.
Lorsque this ExecutableItem se termine avec succès, l'objet Group renvoyé ne se termine pas immédiatement mais attend que le signal d'attente soit envoyé. Après l'envoi du signal d'attente, le retour de Group se termine avec succès. Si le signal d'attente est envoyé avant que this ExecutableItem ne se termine, la phase d'attente est ignorée et Group se termine de manière synchrone.
La connexion au signal d'attente est établie lorsque this ExecutableItem est sur le point d'être lancé. Si le signal d'attente a été déclenché avant, on ne le remarquera pas après le démarrage de this ExecutableItem .
template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const
Rend une copie de this ExecutableItem annulable. L'objet getter transmis est une fonction renvoyant un objet ObjectSignal qui décrit l'émetteur et son signal d'annulation. Utilisez makeObjectSignal() à l'intérieur de getter pour créer un objet ObjectSignal. Lorsque le signal d'annulation est émis, this ExecutableItem est annulé, postCancelRecipe est exécuté et le groupe retourné se termine par une erreur.
Lorsque this ExecutableItem se termine avant l'émission du signal d'annulation, le groupe renvoyé se termine immédiatement avec le même résultat que this ExecutableItem . Dans ce cas, l'adresse postCancelRecipe, fournie à titre facultatif, est ignorée.
La connexion au signal d'annulation est établie lorsque this ExecutableItem est sur le point d'être lancé. Si le signal d'annulation a été déclenché auparavant, il ne sera pas remarqué après le démarrage de this ExecutableItem .
QtTaskTree::Group ExecutableItem::withLog(const QString &logName) const
Attache une impression de débogage personnalisée à une copie de this ExecutableItem , émise au démarrage de la tâche et une fois la tâche terminée, et renvoie l'élément couplé.
L'impression de débogage comprend un horodatage de l'événement (début ou fin) et logName pour identifier la tâche spécifique dans le journal de débogage.
La sortie imprimée de fin contient des informations supplémentaires, à savoir si l'exécution était synchrone ou asynchrone, son résultat (la valeur décrite par l'enum DoneWith ) et la durée totale de l'exécution en millisecondes.
QtTaskTree::Group ExecutableItem::withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const
Attache QTimeoutTask à une copie de this ExecutableItem , s'écoulant après timeout en millisecondes, avec un délai facultatif handler, et renvoie l'élément couplé.
Lorsque ExecutableItem se termine avant que timeout ne passe, l'élément renvoyé se termine immédiatement avec le résultat de la tâche. Dans le cas contraire, handler est invoqué (s'il est fourni), la tâche est annulée et l'élément retourné se termine par une erreur.
Non-membres apparentés
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
Renvoie un groupe dont l'adresse DoneResult de item a été annulée.
Si item signale DoneResult::Success, l'élément renvoyé signale DoneResult::Error. Si item rapporte DoneResult::Error, l'élément retourné rapporte DoneResult::Success.
L'élément retourné est équivalent à :
Group {
item,
onGroupDone([](DoneWith doneWith) { return toDoneResult(doneWith == DoneWith::Error); })
}Voir également operator&&() et operator||().
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
Renvoie un groupe dont les tâches first et second ont été fusionnées.
Les tâches first et second s'exécutent l'une après l'autre. Si les deux tâches indiquent DoneResult::Success, l'élément retourné indique DoneResult::Success. Dans le cas contraire, l'élément retourné indique DoneResult::Error.
L'élément retourné est court-circuité: si la tâche first rapporte DoneResult::Error, la tâche second est ignorée et l'élément retourné rapporte immédiatement DoneResult::Error.
L'élément retourné est équivalent à :
Group { stopOnError, first, second }Remarque : l'exécution parallèle d'une conjonction en court-circuit peut être réalisée à l'aide du code suivant : Group { parallel, stopOnError, first, second }. Dans ce cas : si la première tâche terminée signale DoneResult::Error, l'autre tâche est annulée et le groupe signale immédiatement DoneResult::Error.
Voir également operator||() et operator!().
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
Renvoie la tâche item si result est DoneResult::Success; sinon, renvoie la tâche item avec son résultat modifié en DoneResult::Error.
task && DoneResult::Error équivaut à modifier le résultat de la tâche en DoneResult::Error de manière inconditionnelle.
Cette fonction surcharge ExecutableItem::operator&&().
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
Renvoie un groupe dont les tâches first et second ont été fusionnées par disjonction.
Les tâches first et second s'exécutent l'une après l'autre. Si les deux tâches indiquent DoneResult::Error, l'élément retourné indique DoneResult::Error. Sinon, l'élément retourné rapporte DoneResult::Success.
L'élément retourné est court-circuité: si la tâche first rapporte DoneResult::Success, la tâche second est ignorée et l'élément retourné rapporte immédiatement DoneResult::Success.
L'élément retourné est équivalent à :
Group { stopOnSuccess, first, second }Remarque : l 'exécution parallèle d'une disjonction en court-circuit peut être réalisée à l'aide du code suivant : Group { parallel, stopOnSuccess, first, second }. Dans ce cas, si la première tâche terminée signale DoneResult::Success, l'autre tâche est annulée et le groupe signale immédiatement DoneResult::Success.
Voir également operator&&() et operator!().
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
Renvoie la tâche item si result est DoneResult::Error; sinon, renvoie la tâche item avec son résultat modifié en DoneResult::Success.
task || DoneResult::Success équivaut à modifier le résultat de la tâche en DoneResult::Success de manière inconditionnelle.
Cette fonction surcharge 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.