中间件标准版5.1git,去除基础模块

PduEntity.h 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*************************************************************************
  2. 【文件名】 PduEntity.h
  3. 【功能模块和目的】 PDU消息实体类头文件
  4. 【开发者及日期】 郑石诺 2015.05.22
  5. 【版本】 V1.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "PduLinkInc.h"
  11. /*************************************************************************
  12. 【类名】 CPduEntity
  13. 【功能】 PDU消息实体类
  14. 【接口说明】
  15. 【开发者及日期】 郑石诺 2015.05.22
  16. 【版本】 V1.0
  17. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  18. 【更改记录】
  19. *************************************************************************/
  20. class CPduDataFormatOne;
  21. class CPduEntityHead;
  22. class CPduEntity
  23. {
  24. private:
  25. PDU_DEV_TYPE m_nLocalType; // 本端设备类型
  26. ULONG m_nLocalId; // 本端设备ID
  27. PDU_DEV_TYPE m_nPeerType; // 对端设备类型
  28. ULONG m_nPeerId; // 对端设备ID
  29. PDU_CMD_TYPE m_nCmdType; // 命令类型
  30. BOOL m_bIsExecReturn; // 是否为执行结果返回命令
  31. SOCKET m_hSocket; // 当前命令接收时关联的SOCKET句柄
  32. CPduDataFormatOne* m_pDataInfo; // 当前命令实体的元数据描述
  33. private:
  34. void InitDataFormat(PDU_CMD_TYPE a_nCmdType); // 根据命令类型初始化数据格式
  35. void InitData(); // 初始化数据( 重载函数 )
  36. void InitData(CPduEntity& a_Cmd); // 初始化数据( 重载函数 )
  37. public:
  38. CPduEntity();
  39. CPduEntity(CPduEntity& a_Cmd);
  40. CPduEntity(PDU_CMD_TYPE a_nCmdType); // 生成发送命令的构造函数
  41. CPduEntity(CPduEntityHead* a_pHead, UCHAR a_szData[]); // 生成接收命令的构造函数
  42. ~CPduEntity(void);
  43. // 运算符重载
  44. CPduEntity& operator = (CPduEntity& a_Cmd);
  45. // 打包函数
  46. USHORT CreatePackge(UCHAR a_szBuf[]); // 生成要发送的数据包
  47. void CopyDataMemo(CPduDataFormatOne* a_pDataMemo); // 拷贝所有数据
  48. // 属性读取(只在接收命令时调用)
  49. PDU_DEV_TYPE GetLocalDevType() { return m_nLocalType; }
  50. PDU_DEV_TYPE GetPeerDevType() { return m_nPeerType; }
  51. ULONG GetLocalDevId() { return m_nLocalId; }
  52. ULONG GetPeerDevId() { return m_nPeerId; }
  53. PDU_CMD_TYPE GetCmdType() { return m_nCmdType; }
  54. BOOL GetIsExecReturn() { return m_bIsExecReturn; }
  55. // 特殊属性
  56. void SetAssoSocket(SOCKET a_hSocket) { m_hSocket = a_hSocket; }
  57. SOCKET GetAssoSocket() { return m_hSocket; }
  58. // 属性设置(只在发送命令时调用)
  59. void SetLocalDevInfo(PDU_DEV_TYPE a_nLocalType, int a_nLocalId); // 本端设备信息
  60. void SetPeerDevInfo(PDU_DEV_TYPE a_nPeerType, int a_nPeerId); // 对端设备信息
  61. // 命令内容填充
  62. void SetDataInt(int a_nIndex, int a_nData);
  63. void SetDataUInt(int a_nIndex, unsigned int a_nData);
  64. void SetDataLong(int a_nIndex, long a_nData);
  65. void SetDataULong(int a_nIndex, unsigned long a_nData);
  66. void SetDataBool(int a_nIndex, bool a_bData);
  67. void SetDataString(int a_nIndex, LPCTSTR a_strData);
  68. void SetToExecReturn() { m_bIsExecReturn = TRUE; } // 设置当前命令为执行结果返回命令
  69. // 命令内容读取
  70. int GetDataInt(int a_nIndex);
  71. unsigned int GetDataUInt(int a_nIndex);
  72. long GetDataLong(int a_nIndex);
  73. unsigned long GetDataULong(int a_nIndex);
  74. bool GetDataBool(int a_nIndex);
  75. CString GetDataString(int a_nIndex);
  76. };