诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

94 rivejä
2.4 KiB

  1. #ifndef DBCORRESPONDMANAGER_HEAD_FILE
  2. #define DBCORRESPONDMANAGER_HEAD_FILE
  3. #pragma once
  4. #include "Stdafx.h"
  5. //////////////////////////////////////////////////////////////////////////
  6. //请求结构
  7. struct tagDBRequestHead
  8. {
  9. BYTE cbCache;
  10. DWORD dwUserID;
  11. DWORD dwContextID;
  12. WORD wRequestID;
  13. WORD wDataSize;
  14. };
  15. typedef CList<tagDBRequestHead *> CDBRequestList;
  16. typedef CWHArray<DWORD> CDBRequestUserArray;
  17. //////////////////////////////////////////////////////////////////////////
  18. class CDBCorrespondManager : public IDBCorrespondManager
  19. {
  20. //变量定义
  21. protected:
  22. bool m_bService; //服务状态
  23. CCriticalSection m_AsyncCritical; //锁定对象
  24. //数据引擎
  25. public:
  26. IDataBaseEngine * m_pIKernelDataBaseEngine; //数据引擎
  27. //数据记录
  28. public:
  29. CDBRequestList m_DBRequestList; //请求链表
  30. CDBRequestUserArray m_DBRequestUserArray; //请求用户
  31. public:
  32. CDBCorrespondManager(void);
  33. ~CDBCorrespondManager(void);
  34. //基础接口
  35. public:
  36. //释放对象
  37. virtual VOID Release() { delete this; }
  38. //接口查询
  39. virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
  40. //基础接口
  41. public:
  42. //启动服务
  43. virtual bool StartService();
  44. //停止服务
  45. virtual bool ConcludeService();
  46. //配置接口
  47. public:
  48. //配置模块
  49. virtual bool __cdecl InitDBCorrespondManager(IDataBaseEngine * pIDataBaseEngine);
  50. //控制事件
  51. public:
  52. //请求事件
  53. virtual bool __cdecl PostDataBaseRequest(DWORD dwUserID, WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize, BYTE cbCache = FALSE);
  54. //同步事件
  55. public:
  56. //请求完成
  57. virtual bool __cdecl OnPostRequestComplete(DWORD dwUserID, bool bSucceed);
  58. //定时事件
  59. public:
  60. //定时事件
  61. virtual bool __cdecl OnTimerNotify();
  62. //功能函数
  63. public:
  64. //已经提交请求
  65. bool IsPostDBRequest(DWORD dwUserID);
  66. //获得索引
  67. INT_PTR GetUserArrayIndex(DWORD dwUserID);
  68. //缓冲请求
  69. bool AmortizeSyncData(DWORD dwUserID, WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize, BYTE cbCache = FALSE);
  70. //执行缓冲
  71. VOID PerformAmortisation();
  72. //清除缓存
  73. VOID ClearAmortizeData();
  74. };
  75. //////////////////////////////////////////////////////////////////////////
  76. #endif