174 lines
5.4 KiB
C
174 lines
5.4 KiB
C
|
|
#ifndef ANDROID_USER_MANAGER_HEAD_FILE
|
|||
|
|
#define ANDROID_USER_MANAGER_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "AfxTempl.h"
|
|||
|
|
#include "AndroidUserItem.h"
|
|||
|
|
#include "GameServiceHead.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
|
|||
|
|
struct tagAndroidParameterEx
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagAndroidParameter AndroidParameter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>
|
|||
|
|
bool bIsValided; //<2F><>Ч<EFBFBD><D0A7>ʶ
|
|||
|
|
bool bIsLoadAndroid; //<2F><><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef CWHArray<CAndroidUserItem *> CAndroidUserItemArray;
|
|||
|
|
typedef CWHArray<tagAndroidParameterEx *> CAndroidParameterArray;
|
|||
|
|
typedef CMap<DWORD,DWORD,CAndroidUserItem *, CAndroidUserItem *> CAndroidUserItemMap;
|
|||
|
|
//typedef CMap<DWORD,DWORD,tagAndroidParameter *, tagAndroidParameter *> CAndroidParameterMap;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD>
|
|||
|
|
class GAME_SERVICE_CLASS CAndroidUserManager : public IAndroidUserManager
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wAutoAndroidCount; //<2F>Զ<EFBFBD><D4B6><EFBFBD>Ŀ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
WORD m_wStockCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
tagAndroidItemConfig m_AndroidItemConfig[MAX_ANDROID]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
ITimerEngine * m_pITimerEngine; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
IServerUserManager * m_pIServerUserManager; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
IGameServiceManager * m_pIGameServiceManager; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
IGameServiceCustomTime * m_pIGameServiceSustomTime; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ITCPNetworkEngineEvent * m_pITCPNetworkEngineEvent; //<2F>¼<EFBFBD><C2BC>ӿ<EFBFBD>
|
|||
|
|
IMainServiceFrame * m_pIMainServiceFrame; //<2F><><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
bool m_bServiceContinue; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DWORD m_dwMinSitInterval; //<2F><>Ϣʱ<CFA2><CAB1>
|
|||
|
|
DWORD m_dwMaxSitInterval; //<2F><>Ϣʱ<CFA2><CAB1>
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
tagGameParameter * m_pGameParameter; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
tagGameServiceAttrib * m_pGameServiceAttrib; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameServiceOption * m_pGameServiceOption; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
tagGameMatchOption * m_pGameMatchOption; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CAndroidUserItemMap m_AndroidUserItemMap; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CAndroidParameterArray m_AndroidParameterArray; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CAndroidUserItemArray m_AndroidUserItemArray; //<2F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
|
CAndroidUserItemArray m_AndroidUserItemBuffer; //<2F><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CAndroidUserManager();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CAndroidUserManager();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
|
|||
|
|
virtual VOID Release() { return; }
|
|||
|
|
//<2F>ӿڲ<D3BF>ѯ
|
|||
|
|
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƽӿ<C6BD>
|
|||
|
|
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><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool InitAndroidUser(tagAndroidUserParameter & AndroidUserParameter);
|
|||
|
|
//<2F>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool RemoveAndroidParameter(DWORD dwBatchID);
|
|||
|
|
//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
virtual bool AddAndroidParameter(tagAndroidParameter AndroidParameter[], WORD wParameterCount);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool InsertAndroidInfo(tagAndroidAccountsInfo AndroidAccountsInfo[],WORD wAndroidCount,DWORD dwBatchID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool DeleteAndroidUserItem(DWORD dwAndroidID,bool bStockRetrieve);
|
|||
|
|
//<2F><><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>
|
|||
|
|
virtual IAndroidUserItem * SearchAndroidUserItem(DWORD dwUserID, DWORD dwContextID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual IAndroidUserItem * CreateAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
VOID SetMainServiceFrame(IMainServiceFrame *pIMainServiceFrame);
|
|||
|
|
|
|||
|
|
//ϵͳ<CFB5>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnEventTimerPulse(DWORD dwTimerID, WPARAM dwBindParameter);
|
|||
|
|
|
|||
|
|
//״̬<D7B4>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
virtual WORD GetAndroidCount() { return (WORD)m_AndroidUserItemMap.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
virtual WORD GetAndroidStock() { return m_wStockCount; }
|
|||
|
|
//<2F><><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>
|
|||
|
|
virtual bool GetAndroidLoadInfo(DWORD & dwBatchID,DWORD & dwLoadCount);
|
|||
|
|
//<2F>û<EFBFBD>״<EFBFBD><D7B4>
|
|||
|
|
virtual WORD GetAndroidUserInfo(tagAndroidUserInfo & AndroidUserInfo, DWORD dwServiceMode);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagGameServiceOption* GetGameServiceOption() { return m_pGameServiceOption; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagGameServiceAttrib* GetGameServiceAttrib() { return m_pGameServiceAttrib; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual tagGameMatchOption* GetGameMatchOption() { return m_pGameMatchOption; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendDataToClient(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendDataToClient(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool SendDataToServer(DWORD dwAndroidID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
|
|||
|
|
VOID FreeAndroidUserItem(DWORD dwUserID);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
CAndroidUserItem * GetAndroidUserItem(WORD wIndex);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CAndroidUserItem * ActiveAndroidUserItem(tagAndroidItemConfig & AndroidItemConfig);
|
|||
|
|
//ǿ<><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID ForceAndroidUserItemStandup(CAndroidUserItem * pAndroidUserItem);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
tagAndroidParameterEx * GetAndroidParameter(DWORD dwBatchID);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
WORD GetAndroidParameterIndex(tagAndroidParameterEx * pAndroidParameter);
|
|||
|
|
//ת<><D7AA>ʱ<EFBFBD><CAB1>
|
|||
|
|
DWORD GetTodayTickCount(SYSTEMTIME & SystemTime);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
DWORD BatchServiceRemaindTime(tagAndroidParameter * pAndroidParameter,DWORD dwTodayTickCount);
|
|||
|
|
//<2F>ȴ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
DWORD BatchServiceAwaitTime(tagAndroidParameter * pAndroidParameter,DWORD dwTodayTickCount);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|