BaseCalculateThread.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef _BASECALCULATETHREAD_H_
  2. #define _BASECALCULATETHREAD_H_
  3. #include "spdlog/spdlog.h"
  4. #include "GlobalVariable.h"
  5. class BaseCalculateThread
  6. {
  7. public:
  8. BaseCalculateThread(CalculateThreadInfo_t& threadInfo);
  9. virtual ~BaseCalculateThread() = default;
  10. /**
  11. * @brief 线程任务函数,创建线程时会调用此函数
  12. */
  13. virtual void threadTask();
  14. /* 获取线程信息 */
  15. CalculateThreadInfo_t getThreadInfo() { return m_threadInfo; }
  16. /* 停止线程 */
  17. void stopThread();
  18. protected:
  19. /**
  20. * @brief 线程运行函数,子类需要实现此函数
  21. */
  22. virtual void task() = 0;
  23. /* 初始化数据 */
  24. virtual bool initData() = 0;
  25. /* 清理数据 */
  26. virtual void clearData() = 0;
  27. protected:
  28. std::shared_ptr<spdlog::logger> m_logger = nullptr; /* 日志记录器 */
  29. std::string m_logBase; /* 日志基础信息 */
  30. std::atomic_bool m_isRunning = true; /* 线程运行标志 */
  31. std::atomic_bool m_isStop = false; /* 线程停止标志 */
  32. CalculateThreadInfo_t m_threadInfo; /* 线程信息 */
  33. };
  34. #endif // _BASECALCULATETHREAD_H_