projectinfomanger.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef PROJECTINFOMANGER_H
  2. #define PROJECTINFOMANGER_H
  3. #include <QObject>
  4. #include "httprequest.h"
  5. #include <QQueue>
  6. #include "struct_/projectinfo.h"
  7. #include "packinfomanger.h"
  8. #include <QJsonArray>
  9. // 处理批号的管理和同步
  10. class ProjectInfoManger : public QObject
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit ProjectInfoManger(PackInfoManger *manger, QObject *parent = nullptr);
  15. enum ReqStatus
  16. {
  17. IDIL = 0,
  18. Load_Server_List = 1,
  19. Sync_Local_List = 2
  20. };
  21. inline QList<QSharedPointer<ProjectInfo>> serverInfo() {return _serverInfo;}
  22. inline QList<QSharedPointer<ProjectInfo>> cacheInfo() {return _cacheInfo;}
  23. signals:
  24. void inited(ProjectInfoManger * manger, bool inited);
  25. void synced(ProjectInfoManger * manger, bool inited);
  26. public slots:
  27. bool loadServerList();
  28. bool syncLocalList();
  29. private slots:
  30. void doSendLoad();
  31. void doSendCreate();
  32. void handleList();
  33. void result(int code, const QJsonObject & body);
  34. void handlSync(int code, const QJsonObject & body);
  35. void handleGetList(int code, const QJsonObject & body);
  36. void hanldeServerList(QJsonArray & ary,bool inServer = true);
  37. private:
  38. ReqStatus _status;
  39. QQueue<QSharedPointer<ProjectInfo>> _pushQueue;
  40. PackInfoManger * _manger;
  41. //saveed;
  42. QList<QSharedPointer<ProjectInfo>> _serverInfo;
  43. QList<QSharedPointer<ProjectInfo>> _cacheInfo;
  44. uint _oneSyncError;
  45. uint _netErrorCount;
  46. };
  47. #endif // PROJECTINFOMANGER_H