诸暨麻将添加redis
您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字
 
 
 
 
 
 

163 行
5.3 KiB

  1. #ifndef ANDROID_USER_MANAGER_HEAD_FILE
  2. #define ANDROID_USER_MANAGER_HEAD_FILE
  3. #pragma once
  4. #include "AfxTempl.h"
  5. #include "AndroidUserItem.h"
  6. #include "GameServiceHead.h"
  7. //////////////////////////////////////////////////////////////////////////////////////
  8. //参数扩展
  9. struct tagAndroidParameterEx
  10. {
  11. //参数变量
  12. tagAndroidParameter AndroidParameter; //机器参数
  13. //标识变量
  14. bool bIsValided; //有效标识
  15. bool bIsLoadAndroid; //加载机器
  16. };
  17. ///////////////////////////////////////////////////////////////////////////////////////
  18. //数组数组
  19. typedef CWHArray<CAndroidUserItem *> CAndroidUserItemArray;
  20. typedef CWHArray<tagAndroidParameterEx *> CAndroidParameterArray;
  21. typedef CMap<DWORD, DWORD, CAndroidUserItem *, CAndroidUserItem *> CAndroidUserItemMap;
  22. //typedef CMap<DWORD,DWORD,tagAndroidParameter *, tagAndroidParameter *> CAndroidParameterMap;
  23. //////////////////////////////////////////////////////////////////////////////////
  24. //机器人管理
  25. class GAME_SERVICE_CLASS CAndroidUserManager : public IAndroidUserManager
  26. {
  27. //配置变量
  28. protected:
  29. WORD m_wAutoAndroidCount; //自动数目
  30. //库存变量
  31. protected:
  32. WORD m_wStockCount; //库存数目
  33. tagAndroidItemConfig m_AndroidItemConfig[MAX_ANDROID]; //机器配置
  34. //组件接口
  35. protected:
  36. ITimerEngine * m_pITimerEngine; //时间引擎
  37. IServerUserManager * m_pIServerUserManager; //用户管理
  38. IGameServiceManager * m_pIGameServiceManager; //服务管理
  39. ITCPNetworkEngineEvent * m_pITCPNetworkEngineEvent; //事件接口
  40. //服务配置
  41. protected:
  42. bool m_bServiceContinue; //服务延续
  43. DWORD m_dwMinSitInterval; //休息时间
  44. DWORD m_dwMaxSitInterval; //休息时间
  45. //系统配置
  46. protected:
  47. tagGameParameter * m_pGameParameter; //配置参数
  48. tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
  49. tagGameServiceOption * m_pGameServiceOption; //服务配置
  50. //用户数组
  51. protected:
  52. CAndroidUserItemMap m_AndroidUserItemMap; //用户索引
  53. CAndroidParameterArray m_AndroidParameterArray; //参数数组
  54. CAndroidUserItemArray m_AndroidUserItemArray; //存储对象
  55. CAndroidUserItemArray m_AndroidUserItemBuffer; //空闲对象
  56. //函数定义
  57. public:
  58. //构造函数
  59. CAndroidUserManager();
  60. //析构函数
  61. virtual ~CAndroidUserManager();
  62. //基础接口
  63. public:
  64. //释放对象
  65. virtual VOID Release() { return; }
  66. //接口查询
  67. virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
  68. //控制接口
  69. public:
  70. //启动服务
  71. virtual bool StartService();
  72. //停止服务
  73. virtual bool ConcludeService();
  74. //配置接口
  75. public:
  76. //配置组件
  77. virtual bool InitAndroidUser(tagAndroidUserParameter & AndroidUserParameter);
  78. //移除参数
  79. virtual bool RemoveAndroidParameter(DWORD dwBatchID);
  80. //设置参数
  81. virtual bool AddAndroidParameter(tagAndroidParameter AndroidParameter[], WORD wParameterCount);
  82. //插入机器
  83. virtual bool InsertAndroidInfo(tagAndroidAccountsInfo AndroidAccountsInfo[], WORD wAndroidCount, DWORD dwBatchID);
  84. //管理接口
  85. public:
  86. //删除机器
  87. virtual bool DeleteAndroidUserItem(DWORD dwAndroidID, bool bStockRetrieve);
  88. //查找机器
  89. virtual IAndroidUserItem * SearchAndroidUserItem(DWORD dwUserID, DWORD dwContextID);
  90. //创建机器
  91. virtual IAndroidUserItem * CreateAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
  92. //系统事件
  93. public:
  94. //脉冲事件
  95. virtual bool OnEventTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter);
  96. //状态接口
  97. public:
  98. //机器数目
  99. virtual WORD GetAndroidCount() { return (WORD)m_AndroidUserItemMap.GetCount(); }
  100. //库存数目
  101. virtual WORD GetAndroidStock() { return m_wStockCount; }
  102. //加载机器
  103. virtual bool GetAndroidLoadInfo(DWORD & dwBatchID, DWORD & dwLoadCount);
  104. //用户状况
  105. virtual WORD GetAndroidUserInfo(tagAndroidUserInfo & AndroidUserInfo, DWORD dwServiceMode);
  106. //网络接口
  107. public:
  108. //发送数据
  109. virtual bool SendDataToClient(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  110. //发送数据
  111. virtual bool SendDataToClient(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  112. //发送数据
  113. virtual bool SendDataToServer(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  114. //对象管理
  115. protected:
  116. //释放对象
  117. VOID FreeAndroidUserItem(DWORD dwUserID);
  118. //获取对象
  119. CAndroidUserItem * GetAndroidUserItem(WORD wIndex);
  120. //激活对象
  121. CAndroidUserItem * ActiveAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
  122. //强制起立
  123. VOID ForceAndroidUserItemStandup(CAndroidUserItem * pAndroidUserItem);
  124. //辅助函数
  125. protected:
  126. //获取参数
  127. tagAndroidParameterEx * GetAndroidParameter(DWORD dwBatchID);
  128. //获取索引
  129. WORD GetAndroidParameterIndex(tagAndroidParameterEx * pAndroidParameter);
  130. //转换时间
  131. DWORD GetTodayTickCount(SYSTEMTIME & SystemTime);
  132. //服务时间
  133. DWORD BatchServiceRemaindTime(tagAndroidParameter * pAndroidParameter, DWORD dwTodayTickCount);
  134. //等待时间
  135. DWORD BatchServiceAwaitTime(tagAndroidParameter * pAndroidParameter, DWORD dwTodayTickCount);
  136. };
  137. //////////////////////////////////////////////////////////////////////////////////
  138. #endif