#ifndef ToWeb_H_ #define ToWeb_H_ #include "json/json.h" #include "httplib.h" #include "AppCommon.h" namespace ai_matrix { class ToWeb final { public: static ToWeb *getins(); std::string webToken; //授权信息 HttpServerConfig httpConfig_; void setConfig(const HttpServerConfig &httpConfig); bool getToken(); // 列车信息提交http接口 bool upWeb(const Json::Value &jvRequest, int retransmission = 0); // 上传车号识别状态 bool upDeviceStatus(const Json::Value &jvRequest, int retransmission = 0); // 获取火车状态(仅程序运行时运行一次) bool getTrainStatus(const std::string &strPoundNo, Json::Value &jvResponse, int retransmission = 0); private: ToWeb() = default; ToWeb(const ToWeb &) = delete; ToWeb(ToWeb &&) = delete; ToWeb &operator=(const ToWeb &) = delete; ToWeb &operator=(ToWeb &&) = delete; ~ToWeb() = default; //定义一个嵌套类,负责释放内存,操作系统自动完成,不用担心内存泄露 class GarbageCollector { public: ~GarbageCollector() { if (ToWeb::ins) { delete ToWeb::ins; ToWeb::ins = nullptr; } } }; static GarbageCollector gc; static ToWeb *ins; static std::mutex mx; //锁,保证线程安全 }; } #endif