aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/thread/Task.h
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-01-15 18:01:59 +0000
committersaturneric <[email protected]>2024-01-15 18:01:59 +0000
commit5adbd09fcb24f829ee110a5d387269aee13c558c (patch)
treea58983c7ce002d59d512341a73fa84cdd1b7a9da /src/core/thread/Task.h
parentfix: slove the languange settings issue (diff)
downloadGpgFrontend-5adbd09fcb24f829ee110a5d387269aee13c558c.tar.gz
GpgFrontend-5adbd09fcb24f829ee110a5d387269aee13c558c.zip
feat: upgrade threading system and make it clearer
Diffstat (limited to 'src/core/thread/Task.h')
-rw-r--r--src/core/thread/Task.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h
index 281c37e6..4b597ed7 100644
--- a/src/core/thread/Task.h
+++ b/src/core/thread/Task.h
@@ -43,7 +43,20 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
using TaskRunnable = std::function<int(DataObjectPtr)>; ///<
using TaskCallback = std::function<void(int, DataObjectPtr)>; ///<
- using TaskTrigger = std::function<void()>;
+
+ class TaskHandler {
+ public:
+ explicit TaskHandler(Task*);
+
+ void Start();
+
+ void Cancel();
+
+ auto GetTask() -> Task*;
+
+ private:
+ QPointer<Task> task_;
+ };
/**
* @brief Construct a new Task object
@@ -83,7 +96,7 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
signals:
void SignalRun();
- void SignalTaskShouldEnd(int rtn);
+ void SignalTaskShouldEnd(int);
void SignalTaskEnd();