diff options
Diffstat (limited to 'src/core/thread/Task.h')
-rw-r--r-- | src/core/thread/Task.h | 62 |
1 files changed, 10 insertions, 52 deletions
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h index 2e812c3f..d4e4df05 100644 --- a/src/core/thread/Task.h +++ b/src/core/thread/Task.h @@ -26,34 +26,27 @@ * */ -#ifndef GPGFRONTEND_TASK_H -#define GPGFRONTEND_TASK_H - -#include <functional> -#include <memory> -#include <stack> -#include <string> -#include <type_traits> -#include <utility> +#pragma once #include "core/GpgFrontendCore.h" +#include "core/thread/DataObject.h" namespace GpgFrontend::Thread { class TaskRunner; +extern const std::string DEFAULT_TASK_NAME; + +class DataObject; +using DataObjectPtr = std::shared_ptr<DataObject>; ///< class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { Q_OBJECT public: - class DataObject; - using DataObjectPtr = std::shared_ptr<DataObject>; ///< + friend class TaskRunner; + using TaskRunnable = std::function<int(DataObjectPtr)>; ///< using TaskCallback = std::function<void(int, DataObjectPtr)>; ///< - static const std::string DEFAULT_TASK_NAME; - - friend class TaskRunner; - /** * @brief Construct a new Task object * @@ -148,44 +141,9 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { void SetRTN(int rtn); private: - class Impl; - std::unique_ptr<Impl>; - const std::string uuid_; - const std::string name_; - 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; ///< + class Impl; + std::unique_ptr<Impl> p_; - /** - * @brief - * - */ - void init(); - - /** - * @brief - * - */ virtual void run() override; - - /** - * @brief - * - * @return std::string - */ - static std::string generate_uuid(); - - private slots: - /** - * @brief - * - */ - void slot_task_run_callback(int rtn); }; } // namespace GpgFrontend::Thread - -#endif // GPGFRONTEND_TASK_H
\ No newline at end of file |