Files
DBService/ComposeService/DataBuffers.h
T
2026-07-09 11:27:59 +08:00

78 lines
1.7 KiB
C++

// DataReceiver.h: interface for the CDataReceiver class.
//
//////////////////////////////////////////////////////////////////////
#ifndef DataBuffersH
#define DataBuffersH
#include <string.h>
#include "thread.h"
#define ERR_DATA_END 1
#define ERR_DATA_ID -1
#define ERR_PACK_ID -2
#define ERR_DATA_SIZE -3
#define ERR_BUFFER_NUM -4
#define DTYPE_STYLETEMP 0
#define DTYPE_STYLEFILE 1
#define DTYPE_STYLESTATE 2
#define DTYPE_STYLEDATA 3
#define DTYPE_QAUPDATE 4
#define DTYPE_SONGFILE 5
#define DTYPE_NTUPDATE 6
#define DTYPE_STYLESHARE 7
#define DTYPE_STYLEINFO 8
#define DTYPE_ICONFILE 9
#define MAX_BUFFER_ID 0x7FFFFFF
typedef struct tagDataBuffer
{
int idBuffer;
int idUser;
int idPack;
int iClientType;
int iDataType;
int nDataSize;
int nRecvSize;
int tSeconds;
char* pData;
tagDataBuffer(){
memset( this, 0, sizeof(tagDataBuffer) );
}
~tagDataBuffer(){
if( pData ){
delete[] pData;
pData = NULL;
}
}
} DATABUFFER, *PDATABUFFER;
#include <list>
using namespace std;
typedef list< PDATABUFFER > DATABUFFERLIST;
class CDataBufferManager
{
public:
CDataBufferManager();
virtual ~CDataBufferManager();
int NewDataBuffer( int idUser, int iType, int nDataSize, char* pData=NULL, int iClientType=0 );
int ReceiveData( int idBuffer, int idPack, int nSize, char* pNewData );
int GetData( int idBuffer, int idPack, int& nSize, char*& pData);
DATABUFFER * GetBuffer( int idBuffer );
void DeleteBuffer( int idBuffer );
void OnTimer();
private:
CSema m_smProcess;
int m_seqFileNo;
DATABUFFERLIST m_lstBuffers;
};
#endif // !defined(_DATARECEIVER_H_INCLUDED_)