Files
wnmj/Servers/服务器组件/游戏服务器/ServerListManager.h

241 lines
5.6 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#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