diff options
author | Saturneric <[email protected]> | 2023-02-18 11:12:03 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2023-02-18 11:12:03 +0000 |
commit | 3b062240c399bc7fb24fde3442db407386c17161 (patch) | |
tree | 06f41cd7928ae1f5ab2b935203d8399dab11373a /src/core/thread/Task.h | |
parent | fix: improve stability of the object-channel model (diff) | |
download | GpgFrontend-3b062240c399bc7fb24fde3442db407386c17161.tar.gz GpgFrontend-3b062240c399bc7fb24fde3442db407386c17161.zip |
fix: improve the task execution model
Diffstat (limited to 'src/core/thread/Task.h')
-rw-r--r-- | src/core/thread/Task.h | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h index d239cfee..ce354697 100644 --- a/src/core/thread/Task.h +++ b/src/core/thread/Task.h @@ -219,18 +219,26 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { */ bool GetSequency() const; - signals: + public slots: + /** * @brief * */ - void SignalTaskFinished(); + void SlotRun(); + signals: /** - * @brief + * @brief announce runnable finished + * + */ + void SignalTaskRunnableEnd(int rtn); + + /** + * @brief runnable and callabck all finished * */ - void SignalTaskPostFinishedDone(); + void SignalTaskEnd(); protected: /** @@ -250,38 +258,39 @@ 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; ///< - int rtn_ = 0; ///< - QThread *callback_thread_ = nullptr; ///< - DataObjectPtr data_object_ = nullptr; ///< + const bool sequency_ = true; ///< must run in the same thread + TaskCallback callback_; ///< + TaskRunnable runnable_; ///< + bool run_callback_after_runnable_finished_ = true; ///< + int rtn_ = 0; ///< + QThread *callback_thread_ = nullptr; ///< + DataObjectPtr data_object_ = nullptr; ///< /** * @brief * */ - void before_finish_task(); + void init(); /** * @brief * */ - void init(); + virtual void run() override; /** * @brief * + * @return std::string */ - virtual void run() override; + static std::string generate_uuid(); + private slots: /** * @brief * - * @return std::string */ - static std::string generate_uuid(); + void slot_task_run_callback(int rtn); }; } // namespace GpgFrontend::Thread |