94 lines
2.1 KiB
C
94 lines
2.1 KiB
C
|
|
#ifndef DBCORRESPONDMANAGER_HEAD_FILE
|
|||
|
|
#define DBCORRESPONDMANAGER_HEAD_FILE
|
|||
|
|
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ
|
|||
|
|
struct tagDBRequestHead
|
|||
|
|
{
|
|||
|
|
BYTE cbCache;
|
|||
|
|
DWORD dwUserID;
|
|||
|
|
DWORD dwContextID;
|
|||
|
|
WORD wRequestID;
|
|||
|
|
WORD wDataSize;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
typedef CList<tagDBRequestHead *> CDBRequestList;
|
|||
|
|
typedef CWHArray<DWORD> CDBRequestUserArray;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
class CDBCorrespondManager : public IDBCorrespondManager
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bService; //<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
CCriticalSection m_AsyncCritical; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
IDataBaseEngine * m_pIKernelDataBaseEngine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݼ<EFBFBD>¼
|
|||
|
|
public:
|
|||
|
|
CDBRequestList m_DBRequestList; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CDBRequestUserArray m_DBRequestUserArray; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CDBCorrespondManager(void);
|
|||
|
|
~CDBCorrespondManager(void);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
|
|||
|
|
virtual VOID Release() { delete this; }
|
|||
|
|
//<2F>ӿڲ<D3BF>ѯ
|
|||
|
|
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool StartService();
|
|||
|
|
//ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool ConcludeService();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
|
|||
|
|
virtual bool __cdecl InitDBCorrespondManager(IDataBaseEngine * pIDataBaseEngine);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool __cdecl PostDataBaseRequest(DWORD dwUserID, WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize, BYTE cbCache = FALSE);
|
|||
|
|
|
|||
|
|
//ͬ<><CDAC><EFBFBD>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool __cdecl OnPostRequestComplete(DWORD dwUserID, bool bSucceed);
|
|||
|
|
|
|||
|
|
//<2F><>ʱ<EFBFBD>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʱ<EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool __cdecl OnTimerNotify();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>Ѿ<EFBFBD><D1BE>ύ<EFBFBD><E1BDBB><EFBFBD><EFBFBD>
|
|||
|
|
bool IsPostDBRequest(DWORD dwUserID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
INT_PTR GetUserArrayIndex(DWORD dwUserID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool AmortizeSyncData(DWORD dwUserID, WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize, BYTE cbCache = FALSE);
|
|||
|
|
//ִ<>л<EFBFBD><D0BB><EFBFBD>
|
|||
|
|
VOID PerformAmortisation();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID ClearAmortizeData();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|