90 lines
1.9 KiB
C++
90 lines
1.9 KiB
C++
#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 |