|
- #ifndef ANDROID_USER_MANAGER_HEAD_FILE
- #define ANDROID_USER_MANAGER_HEAD_FILE
-
- #pragma once
-
- #include "AfxTempl.h"
- #include "AndroidUserItem.h"
- #include "GameServiceHead.h"
-
- //////////////////////////////////////////////////////////////////////////////////////
- //参数扩展
- struct tagAndroidParameterEx
- {
- //参数变量
- tagAndroidParameter AndroidParameter; //机器参数
-
- //标识变量
- bool bIsValided; //有效标识
- bool bIsLoadAndroid; //加载机器
- };
-
- ///////////////////////////////////////////////////////////////////////////////////////
-
- //数组数组
- typedef CWHArray<CAndroidUserItem *> CAndroidUserItemArray;
- typedef CWHArray<tagAndroidParameterEx *> CAndroidParameterArray;
- typedef CMap<DWORD, DWORD, CAndroidUserItem *, CAndroidUserItem *> CAndroidUserItemMap;
- //typedef CMap<DWORD,DWORD,tagAndroidParameter *, tagAndroidParameter *> CAndroidParameterMap;
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //机器人管理
- class GAME_SERVICE_CLASS CAndroidUserManager : public IAndroidUserManager
- {
- //配置变量
- protected:
- WORD m_wAutoAndroidCount; //自动数目
-
- //库存变量
- protected:
- WORD m_wStockCount; //库存数目
- tagAndroidItemConfig m_AndroidItemConfig[MAX_ANDROID]; //机器配置
-
- //组件接口
- protected:
- ITimerEngine * m_pITimerEngine; //时间引擎
- IServerUserManager * m_pIServerUserManager; //用户管理
- IGameServiceManager * m_pIGameServiceManager; //服务管理
- ITCPNetworkEngineEvent * m_pITCPNetworkEngineEvent; //事件接口
-
- //服务配置
- protected:
- bool m_bServiceContinue; //服务延续
- DWORD m_dwMinSitInterval; //休息时间
- DWORD m_dwMaxSitInterval; //休息时间
-
- //系统配置
- protected:
- tagGameParameter * m_pGameParameter; //配置参数
- tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
- tagGameServiceOption * m_pGameServiceOption; //服务配置
-
- //用户数组
- protected:
- CAndroidUserItemMap m_AndroidUserItemMap; //用户索引
- CAndroidParameterArray m_AndroidParameterArray; //参数数组
- CAndroidUserItemArray m_AndroidUserItemArray; //存储对象
- CAndroidUserItemArray m_AndroidUserItemBuffer; //空闲对象
-
- //函数定义
- public:
- //构造函数
- CAndroidUserManager();
- //析构函数
- virtual ~CAndroidUserManager();
-
- //基础接口
- public:
- //释放对象
- virtual VOID Release() { return; }
- //接口查询
- virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
-
- //控制接口
- public:
- //启动服务
- virtual bool StartService();
- //停止服务
- virtual bool ConcludeService();
-
- //配置接口
- public:
- //配置组件
- virtual bool InitAndroidUser(tagAndroidUserParameter & AndroidUserParameter);
- //移除参数
- virtual bool RemoveAndroidParameter(DWORD dwBatchID);
- //设置参数
- virtual bool AddAndroidParameter(tagAndroidParameter AndroidParameter[], WORD wParameterCount);
- //插入机器
- virtual bool InsertAndroidInfo(tagAndroidAccountsInfo AndroidAccountsInfo[], WORD wAndroidCount, DWORD dwBatchID);
-
- //管理接口
- public:
- //删除机器
- virtual bool DeleteAndroidUserItem(DWORD dwAndroidID, bool bStockRetrieve);
- //查找机器
- virtual IAndroidUserItem * SearchAndroidUserItem(DWORD dwUserID, DWORD dwContextID);
- //创建机器
- virtual IAndroidUserItem * CreateAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
-
- //系统事件
- public:
- //脉冲事件
- virtual bool OnEventTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter);
-
- //状态接口
- public:
- //机器数目
- virtual WORD GetAndroidCount() { return (WORD)m_AndroidUserItemMap.GetCount(); }
- //库存数目
- virtual WORD GetAndroidStock() { return m_wStockCount; }
- //加载机器
- virtual bool GetAndroidLoadInfo(DWORD & dwBatchID, DWORD & dwLoadCount);
- //用户状况
- virtual WORD GetAndroidUserInfo(tagAndroidUserInfo & AndroidUserInfo, DWORD dwServiceMode);
-
- //网络接口
- public:
- //发送数据
- virtual bool SendDataToClient(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
- //发送数据
- virtual bool SendDataToClient(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
- //发送数据
- virtual bool SendDataToServer(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
-
- //对象管理
- protected:
- //释放对象
- VOID FreeAndroidUserItem(DWORD dwUserID);
- //获取对象
- CAndroidUserItem * GetAndroidUserItem(WORD wIndex);
- //激活对象
- CAndroidUserItem * ActiveAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
- //强制起立
- VOID ForceAndroidUserItemStandup(CAndroidUserItem * pAndroidUserItem);
-
- //辅助函数
- protected:
- //获取参数
- tagAndroidParameterEx * GetAndroidParameter(DWORD dwBatchID);
- //获取索引
- WORD GetAndroidParameterIndex(tagAndroidParameterEx * pAndroidParameter);
- //转换时间
- DWORD GetTodayTickCount(SYSTEMTIME & SystemTime);
- //服务时间
- DWORD BatchServiceRemaindTime(tagAndroidParameter * pAndroidParameter, DWORD dwTodayTickCount);
- //等待时间
- DWORD BatchServiceAwaitTime(tagAndroidParameter * pAndroidParameter, DWORD dwTodayTickCount);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|