诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

90 lines
2.1 KiB

  1. #ifndef WH_DATA_QUEUE_HEAD_FILE
  2. #define WH_DATA_QUEUE_HEAD_FILE
  3. #pragma once
  4. #include "ServiceCoreHead.h"
  5. //////////////////////////////////////////////////////////////////////////////////
  6. //结构定义
  7. //数据列头
  8. struct tagDataHead
  9. {
  10. WORD wDataSize; //数据大小
  11. WORD wIdentifier; //类型标识
  12. };
  13. //负荷信息
  14. struct tagBurthenInfo
  15. {
  16. DWORD dwDataSize; //数据大小
  17. DWORD dwBufferSize; //缓冲长度
  18. DWORD dwDataPacketCount; //数据包数
  19. };
  20. //数据信息
  21. struct tagDataBuffer
  22. {
  23. WORD wDataSize; //数据大小
  24. LPVOID pDataBuffer; //数据指针
  25. };
  26. //////////////////////////////////////////////////////////////////////////////////
  27. //数据队列
  28. class SERVICE_CORE_CLASS CWHDataQueue
  29. {
  30. //查询变量
  31. protected:
  32. DWORD m_dwInsertPos; //插入位置
  33. DWORD m_dwTerminalPos; //结束位置
  34. DWORD m_dwDataQueryPos; //查询位置
  35. //数据变量
  36. protected:
  37. DWORD m_dwDataSize; //数据大小
  38. DWORD m_dwDataPacketCount; //数据包数
  39. //缓冲变量
  40. protected:
  41. DWORD m_dwBufferSize; //缓冲长度
  42. LPBYTE m_pDataQueueBuffer; //缓冲指针
  43. //函数定义
  44. public:
  45. //构造函数
  46. CWHDataQueue();
  47. //析构函数
  48. virtual ~CWHDataQueue();
  49. //功能函数
  50. public:
  51. //负荷信息
  52. VOID GetBurthenInfo(tagBurthenInfo & BurthenInfo);
  53. //数据信息
  54. DWORD GetDataPacketCount() { return m_dwDataPacketCount; }
  55. //插入数据
  56. public:
  57. //插入数据
  58. bool InsertData(WORD wIdentifier, VOID * pBuffer, WORD wDataSize);
  59. //插入数据
  60. bool InsertData(WORD wIdentifier, tagDataBuffer DataBuffer[], WORD wDataCount);
  61. //数据管理
  62. public:
  63. //删除数据
  64. VOID RemoveData(bool bFreeMemroy);
  65. //提取数据
  66. bool DistillData(tagDataHead & DataHead, VOID * pBuffer, WORD wBufferSize);
  67. //内部函数
  68. private:
  69. //调整存储
  70. bool RectifyBuffer(DWORD dwNeedSize);
  71. };
  72. //////////////////////////////////////////////////////////////////////////////////
  73. #endif