SPAServer.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef SPASERVER_H
  2. #define SPASERVER_H
  3. #include "FromSuperBrain.h"
  4. #include "FromRedis.h"
  5. #include "ToEQMDataBase.h"
  6. /**
  7. * 安播辅助提示系统服务类
  8. *
  9. */
  10. class SPAServer
  11. {
  12. public:
  13. SPAServer();
  14. ~SPAServer();
  15. /* 启动服务 */
  16. void startServer();
  17. private:
  18. /* 从基础平台获取算法信息和设备信息的线程函数 */
  19. void fromSuperBrainThread();
  20. /* 处理算法信息,返回值为true,说明有改变,需要重新读取 */
  21. bool processAlgorithmInfo(std::vector<AlgorithmInfo> vecNewAlgInfo);
  22. /* 处理设备信息,传入新获取到的值,返回true需要更新本地数据缓存 */
  23. bool processDeviceInfo(std::vector<DeviceInfo> vecNewDevInfo);
  24. /* 对比算法信息现有的数据和新获取到的数据,取出要删除和添加的数据 */
  25. void compareAlgorithmInfo(const std::vector<AlgorithmInfo>& vecNewInfo, std::vector<AlgorithmInfo>& vecAlgUpdate, std::vector<AlgorithmInfo>& vecAlgDelete);
  26. private:
  27. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  28. bool m_threadRunning = true; /* 线程正在运行 */
  29. FromSuperBrain m_fromSuperBrain;
  30. FromRedis m_fromRedis;
  31. ToEQMDataBase m_toEQMDataBase;
  32. /* 算法信息,这个就是tAction在内存中的数据,方便后续对比,程序启动的时候会先获取一份 */
  33. std::vector<AlgorithmInfo> m_vecEqmAlgInfo;
  34. /* 设备信息,这个是tActionCamer的信息 */
  35. std::vector<DeviceInfo> m_vecEqmDevInfo;
  36. };
  37. #endif /* SPASERVER_H */