RemoteControllerCnn.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643
  1. #pragma once
  2. #include "SpSecureClient.h"
  3. #include "SpFSM.h"
  4. #include <list>
  5. #include <string>
  6. using namespace std;
  7. #pragma pack(1)
  8. // 请求建立远程控制通道
  9. // [StructName("RemoteR")]
  10. struct RvcCreateChannelReq
  11. {
  12. char TerminalNo[16]; // 终端号
  13. BYTE IPAddr[4]; // 终端IP地址,用于IP绑定
  14. DWORD LifeID; // 生命标识,用户判断终端是否已重启
  15. };
  16. //[StructName("RemoteA")]
  17. struct RvcCreateChannelRet
  18. {
  19. char AgentID[16]; // 远程用户
  20. char ChannelID[20]; // 通道标识
  21. };
  22. // 查看实体状态
  23. // [StructName("ViewEntR")]
  24. struct RvcViewEntityReq
  25. {
  26. int TaskID; // 任务号
  27. };
  28. // [StructName("ViewEnA1")]
  29. struct RvcViewEntityRet1
  30. {
  31. int TaskID; // 任务号
  32. };
  33. // [StructName("ViewEnA2")]
  34. struct RvcViewEntityRet2
  35. {
  36. char EntityName[32]; // 实体名
  37. int EntityState; // 具体定义参见spbase.h的EntityStateEnum
  38. int ProcessID; // 进程号
  39. int EntityID; // 实体号
  40. int UsedMemory; // 占用内存
  41. };
  42. // 查看实体状态(返回是否有静态配置和运行时配置)
  43. // [StructName("ViEnExR")]
  44. struct RvcViewEntityExReq
  45. {
  46. int TaskID; // 任务号
  47. };
  48. // [StructName("ViEnExA1")]
  49. struct RvcViewEntityExRet1
  50. {
  51. int TaskID; // 任务号
  52. };
  53. // [StructName("ViEnExA2")]
  54. struct RvcViewEntityExRet2
  55. {
  56. char EntityName[32]; // 实体名
  57. int EntityState; // 具体定义参见spbase.h的EntityStateEnum
  58. int ProcessID; // 进程号
  59. int EntityID; // 实体号
  60. int UsedMemory; // 占用内存
  61. bool HasConfig; // 是否有实体配置
  62. bool HasRunCfg; // 是否有运行时配置
  63. };
  64. // 查询实体配置文件
  65. // [StructName("ViewCfgR")]
  66. struct RvcViewConfigReq
  67. {
  68. int TaskID; // 任务号
  69. char EntityName[32]; // 实体名
  70. };
  71. //[StructName("ViewCfgA")]
  72. struct RvcViewConfigRet
  73. {
  74. int TaskID; // 任务号
  75. char ConfigData[0]; // 配置文件(变长字段)
  76. };
  77. // 查询dbg日志
  78. //[StructName("ViewDbgR")]
  79. struct RvcViewDbgReq
  80. {
  81. int TaskID; // 任务号
  82. char EntityName[32]; // 实体名
  83. char ViewDate[10]; // 查看对应日期的日志,空表示当天,如"20131218"
  84. long long StartPos; // 起始位移,0表示从头开始
  85. long long MaxRetBytes; // 最大返回字节数
  86. };
  87. //[StructName("ViewDbgA")]
  88. struct RvcViewDbgRet
  89. {
  90. int TaskID; // 任务号
  91. char EntityName[32]; // 实体名
  92. char ViewDate[10]; // 查看对应日期的日志,空表示当天,如"20131218"
  93. long long NextPos; // 下次开始位移,如果为0表示已结束
  94. long long FileLength; // 当前日志文件长度
  95. char LogData[0]; // 日志内容(变长字段)
  96. };
  97. // 操作磁盘文件
  98. //[StructName("OprDiskR")]
  99. struct RvcOperateDiskReq
  100. {
  101. int TaskID; // 任务号
  102. char current[260]; //路径,windows最大长度260
  103. int mode;
  104. int attribute;
  105. char content[260];
  106. int filter1;
  107. char filter2[260];
  108. int attachment1;
  109. char attachment2[260];
  110. };
  111. // [StructName("OprDiskJA")]
  112. struct RvcOperateDiskJsonRet
  113. {
  114. int TaskID;
  115. long long jsonLength;
  116. char jsonData[0];
  117. };
  118. #include "remoteBase.h"
  119. // [StructName("OprDiskA2")]
  120. class RvcOperateDiskRet2
  121. {
  122. public:
  123. RvcOperateDiskRet2()
  124. :fileSize(0), ftCreate(0), ftModified(0), ftAccess(0), fileAttribute(0), forbidAttributes(0), reserved1(0)
  125. {
  126. ZeroMemory(fileName, sizeof(fileName));
  127. ZeroMemory(reserved2, sizeof(reserved2));
  128. }
  129. RvcOperateDiskRet2(const CSimpleStringA &oldName, const unsigned long long &oldSize, const unsigned long long &oldCreate, const unsigned long long &oldModified,
  130. const unsigned long long &oldAccess, const unsigned int &oldAttribute, const unsigned int &oldForbidAttributes, const int &oldReserved1, const CSimpleStringA &oldReserved2)
  131. :fileSize(oldSize), ftCreate(oldCreate), ftModified(oldModified), ftAccess(oldAccess), fileAttribute(oldAttribute), forbidAttributes(oldForbidAttributes), reserved1(oldReserved1)
  132. {
  133. ZeroMemory(fileName, sizeof(fileName));
  134. strncpy_s(fileName, sizeof(fileName), (const char*)oldName, _TRUNCATE);
  135. ZeroMemory(reserved2, sizeof(reserved2));
  136. strncpy_s(reserved2, sizeof(reserved2), (const char*)oldReserved2, _TRUNCATE);
  137. }
  138. public:
  139. char fileName[260];
  140. unsigned long long fileSize;
  141. unsigned long long ftCreate;
  142. unsigned long long ftModified;
  143. unsigned long long ftAccess;
  144. unsigned int fileAttribute;
  145. unsigned int forbidAttributes;
  146. int reserved1;
  147. char reserved2[260];
  148. };
  149. //[StructName("OprDiskA1")]
  150. struct RvcOperateDiskRet1
  151. {
  152. int TaskID; // 任务号
  153. int result;
  154. char header[260];
  155. int attachment1;
  156. RvcOperateDiskRet1(const int &oldID, const int &oldResult, const CSimpleStringA &oldHeader, const int &oldAttach)
  157. :TaskID(oldID), result(oldResult)
  158. {
  159. ZeroMemory(header, sizeof(header));
  160. strncpy_s(header, sizeof(header), (const char*)oldHeader, _TRUNCATE);
  161. }
  162. };
  163. // 进入维护模式
  164. // [StructName("EnterMMR")]
  165. struct RvcEnterMaintainModeReq
  166. {
  167. int TaskID; // 任务号
  168. };
  169. // [StructName("EnterMMA")]
  170. struct RvcEnterMaintainModeRet
  171. {
  172. int TaskID; // 任务号
  173. };
  174. // 退出维护模式
  175. // [StructName("ExitMMR")]
  176. struct RvcExitMaintainModeReq
  177. {
  178. int TaskID; // 任务号
  179. };
  180. // [StructName("ExitMMA")]
  181. struct RvcExitMaintainModeRet
  182. {
  183. int TaskID; // 任务号
  184. };
  185. // 手工升级
  186. // [StructName("UpgPackR")]
  187. struct RvcUpgradePackReq
  188. {
  189. int TaskID; // 任务号
  190. char PackName[64]; // 包名称
  191. };
  192. // [StructName("UpgPackA")]
  193. struct RvcUpgradePackRet
  194. {
  195. int TaskID; // 任务号
  196. };
  197. // 查询当前维护用户
  198. //[StructName("GetUserR")]
  199. struct RvcGetUserReq
  200. {
  201. int TaskID; // 任务号
  202. };
  203. // [StructName("GetUserA")]
  204. struct RvcGetUserRet
  205. {
  206. int TaskID; // 任务号
  207. char UserID[16]; // 用户号
  208. char UserName[16]; // 用户名称
  209. char CurRight[16]; // 用户权限
  210. char Authorizer[16]; // 授权人
  211. unsigned int BeginTime; // 开始时间
  212. };
  213. // 提升当前维护用户
  214. // [StructName("EnpowerR")]
  215. struct RvcEnpowerUserReq
  216. {
  217. int TaskID; // 任务号
  218. char UserID[16]; // 用户号
  219. };
  220. // [StructName("EnpowerA")]
  221. struct RvcEnpowerUserRet
  222. {
  223. int TaskID; // 任务号
  224. };
  225. // 降级当前维护用户
  226. // [StructName("TakeovrR")]
  227. struct RvcTakeoverPowerReq
  228. {
  229. int TaskID; // 任务号
  230. char UserID[16]; // 用户号
  231. };
  232. // [StructName("TakeovrA")]
  233. struct RvcTakeoverPowerRet
  234. {
  235. int TaskID; // 任务号
  236. };
  237. // 强制当前维护用户退出
  238. // [StructName("ForceQtR")]
  239. struct RvcForceQuitReq
  240. {
  241. int TaskID; // 任务号
  242. };
  243. //[StructName("ForceQtA")]
  244. struct RvcForceQuitRet
  245. {
  246. int TaskID; // 任务号
  247. };
  248. // 修改实体配置文件
  249. // [StructName("EditCfgR")]
  250. struct RvcEditConfigReq
  251. {
  252. int TaskID;
  253. char EditType; // "A"增加;"U"修改;“D" 删除
  254. char EntityName[32]; // 配置文件名
  255. char Section[32]; // 配置节
  256. char Key[32]; // 配置项
  257. char Value[256]; // 值
  258. };
  259. // [StructName("EditCfgA")]
  260. struct RvcEditConfigRet
  261. {
  262. int TaskID;
  263. };
  264. // 查询终端系统变量
  265. // [StructName("ViewVarR")]
  266. struct RvcViewSysVarReq
  267. {
  268. int TaskID;
  269. };
  270. // [StructName("ViewVarA")]
  271. struct RvcViewSysVarRet
  272. {
  273. int TaskID;
  274. char VarName[32]; // 变量名称
  275. char VarValue; // 变量值
  276. };
  277. // 手工回滚
  278. //[StructName("RollbakR")]
  279. struct RvcRollbackReq
  280. {
  281. int TaskID; // 任务号
  282. };
  283. //[StructName("RollbakA")]
  284. struct RvcRollbackRet
  285. {
  286. int TaskID; // 任务号
  287. };
  288. // 重启机器
  289. //[StructName("RestOR")]
  290. struct RvcRestartMachineReq
  291. {
  292. int TaskID; // 任务号
  293. };
  294. //[StructName("RestOA")]
  295. struct RvcRestartMachineRet
  296. {
  297. int TaskID; // 任务号
  298. };
  299. // 重启Shell
  300. //[StructName("RestSR")]
  301. struct RvcRestartShellReq
  302. {
  303. int TaskID; // 任务号
  304. };
  305. //[StructName("RestSA")]
  306. struct RvcRestartShellRet
  307. {
  308. int TaskID; // 任务号
  309. };
  310. // 删除RunInfo日志
  311. struct RvcDelRunInfoLogReq
  312. {
  313. int TaskID; // 任务号
  314. char logName[128];
  315. };
  316. struct RvcDelRunInfoLogRet
  317. {
  318. int TaskID; // 任务号
  319. };
  320. // 查询当前活动版本
  321. //[StructName("GetVerR")]
  322. struct RvcGetActiveVerReq
  323. {
  324. int TaskID; // 任务号
  325. };
  326. //[StructName("GetVerA")]
  327. struct RvcGetActiveVerRet
  328. {
  329. int TaskID; // 任务号
  330. char Version[32]; // 活动版本
  331. };
  332. // 查询实体配置文件
  333. //[StructName("VRunCfgR")]
  334. struct RvcViewRunCfgReq
  335. {
  336. int TaskID; // 任务号
  337. char ConfigName[32]; // 配置文件
  338. };
  339. //[StructName("VRunCfgA")]
  340. struct RvcViewRunCfgRet
  341. {
  342. int TaskID; // 任务号
  343. char ConfigData[0]; // 配置文件(变长字段)
  344. };
  345. // 查询实体配置文件
  346. //[StructName("VPkgLogR")]
  347. struct RvcViewInstallLogReq
  348. {
  349. int TaskID; // 任务号
  350. char InstallLog[32]; // 配置文件
  351. };
  352. //[StructName("VPkgLogA")]
  353. struct RvcViewInstallLogRet
  354. {
  355. int TaskID; // 任务号
  356. char LogData[0]; // 配置文件(变长字段)
  357. };
  358. /// <summary>
  359. /// 导出系统日志
  360. /// </summary>
  361. //[StructName("EvtLogR")]
  362. struct RvcUploadEventLogReq
  363. {
  364. RvcUploadEventLogReq()
  365. :TaskID(0), evtName(0), duration(0), startTime(0), endTime(0), reversed1(0), StartPos(0), MaxRetBytes(0)
  366. {
  367. ZeroMemory(cusEvtFileName, sizeof(cusEvtFileName));
  368. ZeroMemory(evtSrcEventName, sizeof(evtSrcEventName));
  369. ZeroMemory(reversed2, sizeof(reversed2));
  370. ZeroMemory(UploadFile, sizeof(UploadFile));
  371. }
  372. int TaskID; // 任务号
  373. unsigned short evtName; //0x0000:不筛选,0x0001:应用程序,0x0002:安全,0x0004:Setup,0x0008:系统,0x0100:自定义,0x00FF:全部类型(不包括自定义)
  374. unsigned short evtLevel; //0x0000:不筛选,0x0001:错误,0x0002:警告,0x0004:信息,0x0008:审计成功,0x0010:审计失败,0x00FF:全部类型
  375. unsigned short duration; //0x0000:任何时间,0x0001: 近1小时,0x0002:近12小时,0x0003:近1天,0x0004:近7天,0x0005:近30天,0x000F:自定义
  376. unsigned long long startTime; //当 duration == 0x000F 时有效,如下两项有效,startTime存储筛选的开始时间,endTime存储筛选的结束时间,具体到秒,需满足endTime >= startTime
  377. unsigned long long endTime;
  378. char cusEvtFileName[260]; //当 evtName == 0x0100 时有效,存储 日志名称
  379. char evtSrcEventName[260]; //存储事件日志来源,一般应用程序名称,比较常用的应该是“Application Error”,不指定请置为NULL或“”
  380. int reversed1; //保留字段
  381. char reversed2[260];
  382. char UploadFile[128]; // 第一次传入指定日志文件名, 续传时传入上传后保存文件名
  383. long long StartPos; // 起始位移,0表示从头开始
  384. long long MaxRetBytes; // 最大返回字节数
  385. };
  386. //[StructName("EvtLogA")]
  387. struct RvcUploadEventLogRet
  388. {
  389. int TaskID; // 任务号
  390. char UploadFile[128]; // 导出后文件名
  391. long long ZipFileLen; // 压缩后长度
  392. long long StartPos; // 起始位移,0表示从头开始
  393. long long NextPos; // 下次开始位移,如果为0表示已结束
  394. char LogData[0]; // 日志内容(变长字段)
  395. };
  396. /// <summary>
  397. /// 通过日期导出日志
  398. /// </summary>
  399. //[StructName("ULogBDR")]
  400. struct RvcUploadLogByDateReq
  401. {
  402. int TaskID; // 任务号
  403. char ViewDate[10]; // 查看对应日期的日志,空表示当天,如"20131218"
  404. char UploadFile[128]; // 第一次传入指定日志文件名, 续传时传入上传后保存文件名
  405. long long StartPos; // 起始位移,0表示从头开始
  406. long long MaxRetBytes; // 最大返回字节数
  407. };
  408. //[StructName("ULogBDA")]
  409. struct RvcUploadLogByDateRet
  410. {
  411. int TaskID; // 任务号
  412. char UploadFile[128]; // 导出后文件名
  413. long long ZipFileLen; // 压缩后长度
  414. long long StartPos; // 起始位移,0表示从头开始
  415. long long NextPos; // 下次开始位移,如果为0表示已结束
  416. char LogData[0]; // 日志内容(变长字段)
  417. };
  418. /// <summary>
  419. /// 上传日志
  420. /// </summary>
  421. //[StructName("UpldLogR")]
  422. struct RvcUploadLogReq
  423. {
  424. int TaskID; // 任务号
  425. char UploadFile[128]; // 第一次传入指定日志文件名, 续传时传入上传后保存文件名
  426. long long StartPos; // 起始位移,0表示从头开始
  427. long long MaxRetBytes; // 最大返回字节数
  428. };
  429. //[StructName("UpldLogA")]
  430. struct RvcUploadLogRet
  431. {
  432. int TaskID; // 任务号
  433. char UploadFile[128]; // 导出后文件名
  434. long long ZipFileLen; // 压缩后长度
  435. long long StartPos; // 起始位移,0表示从头开始
  436. long long NextPos; // 下次开始位移,如果为0表示已结束
  437. char LogData[0]; // 日志内容(变长字段)
  438. };
  439. /// <summary>
  440. /// 通过日期批量上传日志
  441. /// </summary>
  442. //[StructName("ULogsBDR")]
  443. struct RvcBatchUploadLogsByDateReq
  444. {
  445. int TaskID; // 任务号
  446. char ViewDate[10]; // 查看对应日期的日志,空表示当天,如"20131218"
  447. char UploadFile[1024]; // 批量导出日志名,以;分隔
  448. char ZipFileName[128]; // 压缩文件包名
  449. long long StartPos; // 起始位移,0表示从头开始
  450. long long MaxRetBytes; // 最大返回字节数
  451. };
  452. struct RvcBatchUploadLogsByDateReq2
  453. {
  454. int TaskID; // 任务号
  455. char ViewDate[10]; // 查看对应日期的日志,空表示当天,如"20131218"
  456. char UploadFile[512]; // 批量导出日志名,以;分隔
  457. char ZipFileName[128]; // 压缩文件包名
  458. long long StartPos; // 起始位移,0表示从头开始
  459. long long MaxRetBytes; // 最大返回字节数
  460. };
  461. //[StructName("ULogsBDA")]
  462. struct RvcBatchUploadLogsByDateRet
  463. {
  464. int TaskID; // 任务号
  465. char ZipFileName[128]; // 压缩文件包名
  466. long long ZipFileLen; // 压缩后长度
  467. long long StartPos; // 起始位移,0表示从头开始
  468. long long NextPos; // 下次开始位移,如果为0表示已结束
  469. char LogData[0]; // 日志内容(变长字段)
  470. };
  471. /// <summary>
  472. /// 批量上传日志
  473. /// </summary>
  474. //[StructName("UpdLogsR")]
  475. struct RvcBatchUploadLogsReq
  476. {
  477. int TaskID; // 任务号
  478. char UploadFile[1024]; // 批量导出日志名,以;分隔
  479. char ZipFileName[128]; // 压缩文件包名
  480. long long StartPos; // 起始位移,0表示从头开始
  481. long long MaxRetBytes; // 最大返回字节数
  482. };
  483. struct RvcBatchUploadLogsReq2
  484. {
  485. int TaskID; // 任务号
  486. char UploadFile[512]; // 批量导出日志名,以;分隔
  487. char ZipFileName[128]; // 压缩文件包名
  488. long long StartPos; // 起始位移,0表示从头开始
  489. long long MaxRetBytes; // 最大返回字节数
  490. };
  491. //[StructName("UpdLogsA")]
  492. struct RvcBatchUploadLogsRet
  493. {
  494. int TaskID; // 任务号
  495. char ZipFileName[128]; // 压缩文件包名
  496. long long ZipFileLen; // 压缩后长度
  497. long long StartPos; // 起始位移,0表示从头开始
  498. long long NextPos; // 下次开始位移,如果为0表示已结束
  499. char LogData[0]; // 日志内容(变长字段)
  500. };
  501. // 取消升级
  502. // [StructName("CancUpgR")]
  503. struct RvcCancelUpgradeReq
  504. {
  505. int TaskID; // 任务号
  506. char PackName[64]; // 包名称
  507. };
  508. // [StructName("CancUpgA")]
  509. struct RvcCancelUpgradeRet
  510. {
  511. int TaskID; // 任务号
  512. };
  513. #pragma pack()
  514. class CRemoteControllerCnn : public SpSecureClient
  515. {
  516. public:
  517. CRemoteControllerCnn(CEntityBase *pEntity, FSMBase *pFSM);
  518. ErrorCodeEnum SendCreateRemoteChannelReq();
  519. private:
  520. ~CRemoteControllerCnn(void);
  521. void OnDisconnect();
  522. void OnPkgAnswer(const CSmartPointer<IPackage> &pRecvPkg);
  523. bool GetHostIPAddr(BYTE addr[4]);
  524. ErrorCodeEnum EnterMonitorMode();
  525. ErrorCodeEnum EnterMaintainMode(bool bLocalMaintain);
  526. ErrorCodeEnum EnterTerminalMode(int nRemotePort);
  527. ErrorCodeEnum HandleCreateRemoteChannelRet(const CSmartPointer<IPackage> &pRecvPkg);
  528. ErrorCodeEnum HandleEndRemoteModeReq(const CSmartPointer<IPackage> &pRecvPkg);
  529. ErrorCodeEnum HandleRestartShellReq(const CSmartPointer<IPackage> &pRecvPkg);
  530. ErrorCodeEnum HandleDelRunInfoLogReq(const CSmartPointer<IPackage> &pRecvPkg);
  531. ErrorCodeEnum HandleTest(const CSmartPointer<IPackage> &pRecvPkg);
  532. ErrorCodeEnum HandleRestartMachineReq(const CSmartPointer<IPackage> &pRecvPkg);
  533. ErrorCodeEnum HandleViewEntityStateReq(const CSmartPointer<IPackage> &pRecvPkg);
  534. ErrorCodeEnum HandleViewEntityConfigReq(const CSmartPointer<IPackage> &pRecvPkg);
  535. ErrorCodeEnum HandleViewDebugLogReq(const CSmartPointer<IPackage> &pRecvPkg);
  536. ErrorCodeEnum HandleOperateDiskReq(const CSmartPointer<IPackage> &pRecvPkg);
  537. ErrorCodeEnum HandleUploadEventLogReq(const CSmartPointer<IPackage> &pRecvPkg);
  538. ErrorCodeEnum HandleUploadLogByDateReq(const CSmartPointer<IPackage> &pRecvPkg);
  539. ErrorCodeEnum HandleBatchUploadLogsByDateReq(const CSmartPointer<IPackage> &pRecvPkg);
  540. ErrorCodeEnum HandleEnterMaintainModeReq(const CSmartPointer<IPackage> &pRecvPkg);
  541. ErrorCodeEnum HandleExitMaintainModeReq(const CSmartPointer<IPackage> &pRecvPkg);
  542. ErrorCodeEnum HandleUpgradePackReq(const CSmartPointer<IPackage> &pRecvPkg);
  543. ErrorCodeEnum HandleRollbackUpgradeReq(const CSmartPointer<IPackage> &pRecvPkg);
  544. ErrorCodeEnum HandleGetCurMaintainerReq(const CSmartPointer<IPackage> &pRecvPkg);
  545. ErrorCodeEnum HandleEnpowerMaintainerReq(const CSmartPointer<IPackage> &pRecvPkg);
  546. ErrorCodeEnum HandleTakeoverPowerReq(const CSmartPointer<IPackage> &pRecvPkg);
  547. ErrorCodeEnum HandleForceQuitMaintainReq(const CSmartPointer<IPackage> &pRecvPkg);
  548. ErrorCodeEnum HandleEditConfigReq(const CSmartPointer<IPackage> &pRecvPkg);
  549. ErrorCodeEnum HandleViewSysVarReq(const CSmartPointer<IPackage> &pRecvPkg);
  550. ErrorCodeEnum HandleViewEntityStateExReq(const CSmartPointer<IPackage> &pRecvPkg);
  551. ErrorCodeEnum HandleGetVersionReq(const CSmartPointer<IPackage> &pRecvPkg);
  552. ErrorCodeEnum HandleViewRunCfgReq(const CSmartPointer<IPackage> &pRecvPkg);
  553. ErrorCodeEnum HandleViewInstallLogReq(const CSmartPointer<IPackage> &pRecvPkg);
  554. ErrorCodeEnum HandleUploadLogReq(const CSmartPointer<IPackage> &pRecvPkg);
  555. ErrorCodeEnum ZipFile(LPCTSTR lpszZipArchive, LPCTSTR lpszSrcFile);
  556. ErrorCodeEnum BatchZipFiles(LPCTSTR lpszZipArchive, const list<string> &listSrcFiles);
  557. ErrorCodeEnum HandleBatchUploadLogsReq(const CSmartPointer<IPackage> &pRecvPkg);
  558. ErrorCodeEnum HandleCancelUpgradeReq(const CSmartPointer<IPackage> &pRecvPkg);
  559. private:
  560. FSMBase *m_pFSM;
  561. char m_chRemoteMode; // 当前模式: 初始状态N、监视O、维护M、终端控制T
  562. };