241 lines
5.6 KiB
C
241 lines
5.6 KiB
C
|
|
#ifndef SERVER_LIST_MANAGER_HEAD_FILE
|
|||
|
|
#define SERVER_LIST_MANAGER_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
#include "AfxTempl.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
namespace NServerListManager
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
|
|||
|
|
class CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
bool m_bDisuse; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameListItem() { m_bDisuse=false; }
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ
|
|||
|
|
class CGameTypeItem : public CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
tagGameType m_GameType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameTypeItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ͽṹ
|
|||
|
|
class CGameKindItem : public CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
tagGameKind m_GameKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameKindItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>ڵ<EFBFBD><DAB5>ṹ
|
|||
|
|
class CGameNodeItem : public CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
tagGameNode m_GameNode; //<2F>ڵ<EFBFBD><DAB5><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameNodeItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƽṹ
|
|||
|
|
class CGamePageItem : public CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
tagGamePage m_GamePage; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGamePageItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ
|
|||
|
|
class CGameServerItem : public CGameListItem
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
tagGameServer m_GameServer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameServerItem();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
|
typedef CWHArray<CGameTypeItem *> CGameTypeItemArray;
|
|||
|
|
typedef CWHArray<CGameKindItem *> CGameKindItemArray;
|
|||
|
|
typedef CWHArray<CGameNodeItem *> CGameNodeItemArray;
|
|||
|
|
typedef CWHArray<CGamePageItem *> CGamePageItemArray;
|
|||
|
|
typedef CWHArray<CGameServerItem *> CGameServerItemArray;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
|
typedef CMap<WORD,WORD,CGameTypeItem *,CGameTypeItem * &> CTypeItemMap;
|
|||
|
|
typedef CMap<WORD,WORD,CGameKindItem *,CGameKindItem * &> CKindItemMap;
|
|||
|
|
typedef CMap<WORD,WORD,CGameNodeItem *,CGameNodeItem * &> CNodeItemMap;
|
|||
|
|
typedef CMap<WORD,WORD,CGamePageItem *,CGamePageItem * &> CPageItemMap;
|
|||
|
|
typedef CMap<WORD,WORD,CGameServerItem *,CGameServerItem * &> CServerItemMap;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class CServerListManager
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CTypeItemMap m_TypeItemMap; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CKindItemMap m_KindItemMap; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CNodeItemMap m_NodeItemMap; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CPageItemMap m_PageItemMap; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CServerItemMap m_ServerItemMap; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
CGameTypeItemArray m_TypeItemBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameKindItemArray m_KindItemBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameNodeItemArray m_NodeItemBuffer; //<2F>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGamePageItemArray m_PageItemBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameServerItemArray m_ServerItemBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CServerListManager();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CServerListManager();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|||
|
|
VOID ResetServerList();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|||
|
|
VOID CleanKernelItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID CleanServerItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>
|
|||
|
|
VOID DisuseKernelItem();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
VOID DisuseServerItem();
|
|||
|
|
|
|||
|
|
//ͳ<>ƽӿ<C6BD>
|
|||
|
|
public:
|
|||
|
|
//ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DWORD CollectOnlineInfo();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DWORD CollectOnlineInfo(WORD wKindID);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool InsertGameType(tagGameType * pGameType);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool InsertGameKind(tagGameKind * pGameKind);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|||
|
|
bool InsertGameNode(tagGameNode * pGameNode);
|
|||
|
|
//<2F><><EFBFBD>붨<EFBFBD><EBB6A8>
|
|||
|
|
bool InsertGamePage(tagGamePage * pGamePage);
|
|||
|
|
//<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>
|
|||
|
|
bool InsertGameServer(tagGameServer * pGameServer);
|
|||
|
|
|
|||
|
|
//ɾ<><C9BE><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool DeleteGameType(WORD wTypeID);
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool DeleteGameKind(WORD wKindID);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>ڵ<EFBFBD>
|
|||
|
|
bool DeleteGameNode(WORD wNodeID);
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool DeleteGamePage(WORD wPageID);
|
|||
|
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool DeleteGameServer(WORD wServerID);
|
|||
|
|
|
|||
|
|
//ö<>ٽӿ<D9BD>
|
|||
|
|
public:
|
|||
|
|
//ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameTypeItem * EmunGameTypeItem(POSITION & Position);
|
|||
|
|
//ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameKindItem * EmunGameKindItem(POSITION & Position);
|
|||
|
|
//ö<>ٽڵ<D9BD>
|
|||
|
|
CGameNodeItem * EmunGameNodeItem(POSITION & Position);
|
|||
|
|
//ö<>ٶ<EFBFBD><D9B6><EFBFBD>
|
|||
|
|
CGamePageItem * EmunGamePageItem(POSITION & Position);
|
|||
|
|
//ö<>ٷ<EFBFBD><D9B7><EFBFBD>
|
|||
|
|
CGameServerItem * EmunGameServerItem(POSITION & Position);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ҽӿ<D2BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameTypeItem * SearchGameType(WORD wTypeID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CGameKindItem * SearchGameKind(WORD wKindID);
|
|||
|
|
//<2F><><EFBFBD>ҽڵ<D2BD>
|
|||
|
|
CGameNodeItem * SearchGameNode(WORD wNodeID);
|
|||
|
|
//<2F><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
|
|||
|
|
CGamePageItem * SearchGamePage(WORD wPageID);
|
|||
|
|
//<2F><><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD>
|
|||
|
|
CGameServerItem * SearchGameServer(WORD wServerID);
|
|||
|
|
|
|||
|
|
//<2F><>Ŀ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetGameTypeCount() { return (DWORD)m_TypeItemMap.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetGameKindCount() { return (DWORD)m_KindItemMap.GetCount(); }
|
|||
|
|
//<2F>ڵ<EFBFBD><DAB5><EFBFBD>Ŀ
|
|||
|
|
DWORD GetGameNodeCount() { return (DWORD)m_NodeItemMap.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetGamePageCount() { return (DWORD)m_PageItemMap.GetCount(); }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
|
DWORD GetGameServerCount() { return (DWORD)m_ServerItemMap.GetCount(); }
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
using namespace NServerListManager;
|
|||
|
|
|
|||
|
|
#endif
|