ThreadCompareItemManager.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef __THREADCOMPAREITEMMANAGER_H__
  2. #define __THREADCOMPAREITEMMANAGER_H__
  3. #include "spdlog/spdlog.h"
  4. #include "FromWebAPI.h"
  5. #include "BaseCalculateThread.h"
  6. class ThreadCompareItemManager
  7. {
  8. public:
  9. ThreadCompareItemManager();
  10. ~ThreadCompareItemManager();
  11. /* 线程函数 */
  12. void thread_CompareItemManager();
  13. private:
  14. /* 更新基础设置信息,如数据库设置,噪音参数等 */
  15. bool updateBaseSettings();
  16. /* 处理对比项信息,新获取的和已有的对比 */
  17. void processCompareItemInfo(QList<CompareItemInfo_t>& createList,
  18. QList<CompareItemInfo_t>& updateList,
  19. QList<int>& deleteList);
  20. /* 处理需要删除的对比项线程 */
  21. void processDeleteCompareItemThreads(const QList<int>& deleteList);
  22. /* 更新正在运行的线程信息 */
  23. void updateRunningThreads(const QList<CompareItemInfo_t>& updateList);
  24. /* 创建新的线程 */
  25. bool createNewCompareItemThreads(const QList<CompareItemInfo_t>& createList);
  26. private:
  27. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  28. FromWebAPI m_fromWebAPI; /* WebAPI处理类 */
  29. QString m_webAPIUrl; /* WebAPI地址 */
  30. QString m_webAPIID; /* WebAPI ID */
  31. QString m_appType; /* 应用类型 */
  32. QList<CompareItemInfo_t> m_listNewItems; /* 对比项列表 */
  33. QMap<int, BaseCalculateThread*> m_mapThreads; /* 对比项线程列表,key是对比项ID,value是对应的线程指针 */
  34. };
  35. #endif