Files

94 lines
2.1 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#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