| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- #ifndef RVC_MOD_CENTERSETTING_CONN_H_
- #define RVC_MOD_CENTERSETTING_CONN_H_
- #pragma once
- #include "SpSecureClient.h"
- #include "SpIni.h"
- #include "IHttpFunc.h"
- #include "EventCode.h"
- #include <vector>
- #include <string>
- #include "JsonConvertHelper.hpp"
- #include "microservices/api_terminal_center_config.h"
- #pragma pack(1)
- // 变更查询 {PollCfg}
- // 新终端版本上送 {PollCfg2}
- //[StructName("PollReq")]
- struct PollCfgReq
- {
- //TerminalNo 终端号
- char TerminalNo[16];
- //MachineType 设备型号
- char MachineType[32];
- // 设备部署场所代码
- char Sites[16];
- // 当前配置指纹
- char LastHash[34];
- };
- //[StructName("PollRet")]
- struct PollCfgRet
- {
- // 配置文件名称
- char FileName[32];
- // 当前配置指纹
- char FileHash[34];
- // 集中配置内容
- char FileContent[0];
- };
- struct PollSMR
- {
- //TerminalNo 终端号
- char TerminalNo[16];
- //MachineType 设备型号
- char MachineType[32];
- // 设备部署场所代码
- char Sites[16];
- // 当前配置指纹
- char LastHash[80];
- };
- //[StructName("PollRet")]
- struct PollSMA
- {
- // 配置文件名称
- char FileName[32];
- // 当前配置指纹
- char FileHash[80];
- // 集中配置内容
- char FileContent[0];
- };
- #pragma pack()
- struct CenterSettingReq : CHTTPReq {
- CenterSettingReq(){m_timeOut = 5;}
- string m_terminal_no;
- string m_last_update_time;
- virtual string ToJson(){
- char reqcontent[512];
- sprintf(reqcontent, "{\"terminal_no\":\"%s\",\"last_update_time\":\"%s\"}", m_terminal_no.c_str(),
- m_last_update_time.c_str());
- return reqcontent;
- }
- };
- struct ModuleConfigItemJson : public MicroServices::API::Terminal::ModuleConfigItem
- {
- JSONCONVERT2OBJECT_MEMEBER_REGISTER(branchNo, remark, sites, updateTime, moudle, name, value)
- };
- struct CenterSettingConfigJson
- {
- std::string mapSiteName;
- std::string lastUpdateTime;
- std::vector<ModuleConfigItemJson> config;
- JSONCONVERT2OBJECT_MEMEBER_REGISTER(lastUpdateTime, config)
- };
- struct CenterSettingFileJson
- {
- std::string branchNo;
- CenterSettingConfigJson biz;
- CenterSettingConfigJson dmz;
- JSONCONVERT2OBJECT_MEMEBER_REGISTER(branchNo, biz, dmz)
- JSONCONVERT2OBJECT_MEMEBER_RENAME_REGISTER("branchNo", "BIZ", "DMZ")
- };
- struct CenterSettingResponse : CHTTPRet {
- CenterSettingResponse(){}
- CenterSettingFileJson centerSyncInfo;
- bool bSuccess;
- std::string errInfo;
- virtual bool Parse(string strData);
- };
- struct CenterSettingsMicroServiceHelper
- {
- CenterSettingsMicroServiceHelper(CEntityBase* pEntity);
- bool InTerminalList();
- bool IsModeActive();
- bool IsConfigureValid() {
- return (!m_strCenterSettingUrl.IsNullOrEmpty());
- }
-
- void RefreshCenterSettingConfig() {
- InitCenterSettingsInfoFromConfig();
- }
- ErrorCodeEnum GrayLaunch(BOOL& grayLaunch);
- ErrorCodeEnum GetCenterSetting(CSimpleStringA& strErrMsg);
- void SetServicesUrl(const CSimpleStringA& value) { m_strCenterSettingUrl = value; }
- private:
- void InitCenterSettingsInfoFromConfig();
- void SyncConfigAndRenameCenterFile(const CenterSettingConfigJson& configOfOneBranch);
- private:
- CEntityBase* m_pEntity;
- BOOL m_bGrayLaunch;
- CSimpleStringA m_strGrayLaunchUrl;
- CSimpleStringA m_strCallRouteBranchNo;
- CSimpleStringA m_strCenterSettingUrl;
- CSimpleStringA m_strLastTime;
- CSimpleStringA m_strTerminalList;
- CSimpleStringA m_strMode;
- CSystemStaticInfo mTerminalInfo;
- };
- class CCenterSettingConn : public SpSecureClient
- {
- public:
- CCenterSettingConn(CEntityBase *pEntity);
- ErrorCodeEnum BeginPollConfig(const CSystemStaticInfo& info);
- static bool ClearillegalCenterSettingsFile(CSimpleStringA strCfgDirPath);
- private:
- virtual ~CCenterSettingConn(void);
- virtual void OnDisconnect();
- virtual void OnPkgAnswer(const CSmartPointer<IPackage> &pRecvPkg);
- ErrorCodeEnum OnEndPollConfig(const CSmartPointer<IPackage> &pRecvPkg);
-
- bool IsServiceAvailable(const char *pszServiceAddr);
- bool ParseIPAddress(const char *str, CSimpleStringA &ip, int &port);
- };
- #endif //RVC_MOD_CENTERSETTING_CONN_H_
|