#ifndef __THREADCOMPAREITEMMANAGER_H__ #define __THREADCOMPAREITEMMANAGER_H__ #include "spdlog/spdlog.h" #include "FromWebAPI.h" #include "BaseCalculateThread.h" class ThreadCompareItemManager { public: ThreadCompareItemManager(); ~ThreadCompareItemManager(); /* 线程函数 */ void thread_CompareItemManager(); private: /* 更新基础设置信息,如数据库设置,噪音参数等 */ bool updateBaseSettings(); /* 处理对比项信息,新获取的和已有的对比 */ void processCompareItemInfo(QList& createList, QList& updateList, QList& deleteList); /* 处理需要删除的对比项线程 */ void processDeleteCompareItemThreads(const QList& deleteList); /* 更新正在运行的线程信息 */ void updateRunningThreads(const QList& updateList); /* 创建新的线程 */ bool createNewCompareItemThreads(const QList& createList); private: std::shared_ptr m_logger = nullptr; FromWebAPI m_fromWebAPI; /* WebAPI处理类 */ QString m_webAPIUrl; /* WebAPI地址 */ QString m_webAPIID; /* WebAPI ID */ QString m_appType; /* 应用类型 */ QList m_listNewItems; /* 对比项列表 */ QMap m_mapThreads; /* 对比项线程列表,key是对比项ID,value是对应的线程指针 */ }; #endif