升龙物业 老版本 ocx IPO, 加密狗 转值班电话

PduMain.h 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /*************************************************************************
  2. 【文件名】 PduMain.h
  3. 【功能模块和目的】 PDU通讯主实现类头文件
  4. 【开发者及日期】 郑石诺 2015/03/19
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "NetCtrlInterface.h"
  11. #include "NetRepInterface.h"
  12. class CPduSocketServer;
  13. class CPduSocket;
  14. class CPduSocketVector;
  15. class CPduEventHost;
  16. class CPduEntity;
  17. /*************************************************************************
  18. 【类名】 CPduMain
  19. 【功能】
  20. 【接口说明】 PDU通讯主实现类
  21. 【开发者及日期】 郑石诺 2015/03/19
  22. 【版本】 V1.0.0
  23. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  24. 【更改记录】
  25. *************************************************************************/
  26. class CPduMain : public IPduComm, public IPduLink
  27. {
  28. private:
  29. static CPduMain* m_pInstance; // PDU主控类实例指针
  30. CPduSocketServer* m_pSocketServer; // SOCKET监听服务器实例对象
  31. CPduSocketVector* m_pSocketVector; // SOCKET通讯实体容器类对象
  32. CPduEventHost* m_pEventHost; // 事件订阅宿主类
  33. // 属性
  34. PDU_DEV_TYPE m_nDevType; // 本端设备类型
  35. int m_nDevId; // 本端设备ID
  36. public:
  37. // SOCKET逻辑控制相关操作
  38. void OnConnEstablished(CPduSocket* a_pSocket); // 连接建立处理
  39. void OnConnFailed(CPduSocket* a_pSocket); // 连接失败/断开处理
  40. void OnConnRegistOK(CPduSocket* a_pSocket); // 注册成功
  41. void OnConnRegistFailed(CPduSocket* a_pSocket); // 注册失败
  42. void OnRecvCommand(CPduEntity* a_pCmd); // 命令接收处理
  43. private:
  44. CPduMain(void);
  45. virtual ~CPduMain(void);
  46. // 操作
  47. void SetLocalInfo(PDU_DEV_TYPE a_nDevType, int a_nDevId); // 设定PDU本端设备类型及ID
  48. void SetLinkContent(PduLinkContent& linkContent,
  49. PDU_LINK_STATE a_nLinkInfo,
  50. CPduSocket* a_pSocket); // 生成连接信息内容
  51. public:
  52. static CPduMain* getInstance(); // 得到控制实例
  53. void GetLocalInfo(PDU_DEV_TYPE& a_nDevType, int& a_nDevId); // 获取PDU本端设备类型及ID
  54. // 消息通讯接口实现
  55. virtual BOOL Send(CPduEntity* a_pCmd, PDU_DEV_TYPE a_nDestType, int a_nDestId); // 发送PDU命令
  56. virtual void Send2All(CPduEntity* a_pCmd);
  57. // 连接管理接口实现
  58. virtual BOOL GetLinkInfo(CString& a_strIp, int& a_nPort, PDU_DEV_TYPE a_nType, int a_nId); // 获取指定连接的网络信息
  59. virtual BOOL GetPeerIp(CString& a_strIp, CPduEntity* a_pCmd); // 获取PDU命令的发送方IP
  60. virtual BOOL CreatePduServer(int a_nListenPort,
  61. PDU_DEV_TYPE a_nLocalType,
  62. int a_nLocalId); // 创建PDU通讯服务器
  63. virtual BOOL CreatePduClient(CString a_strFarIp,
  64. int a_nFarPort,
  65. PDU_DEV_TYPE a_nLocalType,
  66. int a_nLocalId,
  67. PDU_DEV_TYPE a_nFarType,
  68. int a_nFarId,
  69. bool IsAutoReconnect); // 创建PDU通讯客户端
  70. virtual BOOL ClosePduClient(PDU_DEV_TYPE a_nFarType, int a_nFarId); // 关闭PDU通讯客户端
  71. virtual void StopAll(void);
  72. // 事件订阅接口实现(注:事件订阅应在创建操作之前调用)
  73. virtual BOOL RegistPduLinkProc(IPduLinkProc* a_pPduLinkProc, BOOL bIsInsert); // 添加连接管理事件订阅
  74. virtual BOOL RegistPduCommProc(IPduCommProc* a_pPduCommProc, BOOL bIsInsert); // 添加消息通讯事件订阅
  75. };