diff options
author | Saturneric <[email protected]> | 2023-02-17 19:08:53 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2023-02-17 19:08:53 +0000 |
commit | da1004ab71c382bde8af2b584e693426227abe0e (patch) | |
tree | a0166f4a5404f5b0d6944cc4a7cffecd3e2eaf86 /src/core/thread/Task.h | |
parent | fix: solve command executor memory problem (diff) | |
download | GpgFrontend-da1004ab71c382bde8af2b584e693426227abe0e.tar.gz GpgFrontend-da1004ab71c382bde8af2b584e693426227abe0e.zip |
feat: improve task execute system
Diffstat (limited to 'src/core/thread/Task.h')
-rw-r--r-- | src/core/thread/Task.h | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h index d9a70618..d239cfee 100644 --- a/src/core/thread/Task.h +++ b/src/core/thread/Task.h @@ -50,6 +50,8 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { using TaskRunnable = std::function<int(DataObjectPtr)>; ///< using TaskCallback = std::function<void(int, DataObjectPtr)>; ///< + static const std::string DEFAULT_TASK_NAME; + friend class TaskRunner; /** @@ -164,14 +166,15 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { * @brief Construct a new Task object * */ - Task(); + Task(std::string name = DEFAULT_TASK_NAME); /** * @brief Construct a new Task object * * @param callback The callback function to be executed. */ - explicit Task(TaskCallback callback, DataObjectPtr data_object = nullptr); + explicit Task(TaskRunnable runnable, std::string name = DEFAULT_TASK_NAME, + DataObjectPtr data_object = nullptr, bool sequency = true); /** * @brief Construct a new Task object @@ -179,9 +182,9 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { * @param runnable */ explicit Task( - TaskRunnable runnable, + TaskRunnable runnable, std::string name, DataObjectPtr data, TaskCallback callback = [](int, const std::shared_ptr<DataObject> &) {}, - DataObjectPtr data = nullptr); + bool sequency = true); /** * @brief Destroy the Task object @@ -202,6 +205,20 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { */ std::string GetUUID() const; + /** + * @brief + * + * @return std::string + */ + std::string GetFullID() const; + + /** + * @brief + * + * @return std::string + */ + bool GetSequency() const; + signals: /** * @brief @@ -232,6 +249,8 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { private: const std::string uuid_; + const std::string name_; + const bool sequency_ = true; ///< must run in the same thread TaskCallback callback_; ///< TaskRunnable runnable_; ///< bool finish_after_run_ = true; ///< |