aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/thread/Task.h
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2023-02-17 19:08:53 +0000
committerSaturneric <[email protected]>2023-02-17 19:08:53 +0000
commitda1004ab71c382bde8af2b584e693426227abe0e (patch)
treea0166f4a5404f5b0d6944cc4a7cffecd3e2eaf86 /src/core/thread/Task.h
parentfix: solve command executor memory problem (diff)
downloadGpgFrontend-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.h27
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; ///<