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"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
|||
|
|
struct tagDataHead
|
|||
|
|
{
|
|||
|
|
WORD wDataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
|
|||
|
|
WORD wIdentifier; //<2F><><EFBFBD>ͱ<EFBFBD>ʶ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
struct tagBurthenInfo
|
|||
|
|
{
|
|||
|
|
DWORD dwDataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
|
|||
|
|
DWORD dwBufferSize; //<2F><><EFBFBD>峤<EFBFBD><E5B3A4>
|
|||
|
|
DWORD dwDataPacketCount; //<2F><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
struct tagDataBuffer
|
|||
|
|
{
|
|||
|
|
WORD wDataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
|
|||
|
|
LPVOID pDataBuffer; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
|
|||
|
|
class SERVICE_CORE_CLASS CWHDataQueue
|
|||
|
|
{
|
|||
|
|
//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
DWORD m_dwInsertPos; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
DWORD m_dwTerminalPos; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
DWORD m_dwDataQueryPos; //<2F><>ѯλ<D1AF><CEBB>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
DWORD m_dwDataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
|
|||
|
|
DWORD m_dwDataPacketCount; //<2F><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
DWORD m_dwBufferSize; //<2F><><EFBFBD>峤<EFBFBD><E5B3A4>
|
|||
|
|
LPBYTE m_pDataQueueBuffer; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CWHDataQueue();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CWHDataQueue();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
VOID GetBurthenInfo(tagBurthenInfo & BurthenInfo);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
DWORD GetDataPacketCount() { return m_dwDataPacketCount; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool InsertData(WORD wIdentifier, VOID * pBuffer, WORD wDataSize);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool InsertData(WORD wIdentifier, tagDataBuffer DataBuffer[], WORD wDataCount);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID RemoveData(bool bFreeMemroy);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
bool DistillData(tagDataHead & DataHead, VOID * pBuffer, WORD wBufferSize);
|
|||
|
|
|
|||
|
|
//<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>洢
|
|||
|
|
bool RectifyBuffer(DWORD dwNeedSize);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|