Files

174 lines
5.4 KiB
C
Raw Permalink Normal View History

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