#ifndef WH_DATA_QUEUE_HEAD_FILE #define WH_DATA_QUEUE_HEAD_FILE #pragma once #include "ServiceCoreHead.h" ////////////////////////////////////////////////////////////////////////////////// //结构定义 //数据列头 struct tagDataHead { WORD wDataSize; //数据大小 WORD wIdentifier; //类型标识 }; //负荷信息 struct tagBurthenInfo { DWORD dwDataSize; //数据大小 DWORD dwBufferSize; //缓冲长度 DWORD dwDataPacketCount; //数据包数 }; //数据信息 struct tagDataBuffer { WORD wDataSize; //数据大小 LPVOID pDataBuffer; //数据指针 }; ////////////////////////////////////////////////////////////////////////////////// //数据队列 class SERVICE_CORE_CLASS CWHDataQueue { //查询变量 protected: DWORD m_dwInsertPos; //插入位置 DWORD m_dwTerminalPos; //结束位置 DWORD m_dwDataQueryPos; //查询位置 //数据变量 protected: DWORD m_dwDataSize; //数据大小 DWORD m_dwDataPacketCount; //数据包数 //缓冲变量 protected: DWORD m_dwBufferSize; //缓冲长度 LPBYTE m_pDataQueueBuffer; //缓冲指针 //函数定义 public: //构造函数 CWHDataQueue(); //析构函数 virtual ~CWHDataQueue(); //功能函数 public: //负荷信息 VOID GetBurthenInfo(tagBurthenInfo & BurthenInfo); //数据信息 DWORD GetDataPacketCount() { return m_dwDataPacketCount; } //插入数据 public: //插入数据 bool InsertData(WORD wIdentifier, VOID * pBuffer, WORD wDataSize); //插入数据 bool InsertData(WORD wIdentifier, tagDataBuffer DataBuffer[], WORD wDataCount); //数据管理 public: //删除数据 VOID RemoveData(bool bFreeMemroy); //提取数据 bool DistillData(tagDataHead & DataHead, VOID * pBuffer, WORD wBufferSize); //内部函数 private: //调整存储 bool RectifyBuffer(DWORD dwNeedSize); }; ////////////////////////////////////////////////////////////////////////////////// #endif