Files
2022-10-26 12:25:11 +08:00

35 lines
936 B
C++

#pragma once
#include <Singleton.h>
#include "XMLParser.h"
#include <map>
class ServerInfo;
typedef std::map< DWORD, ServerInfo* > SERVER_INFO_MAP;
typedef SERVER_INFO_MAP::iterator SERVER_INFO_MAP_ITER;
class ServerInfoParser : public Singleton<ServerInfoParser>
{
enum { MAX_UNIT_SERVER_NUM = 100 };
public:
ServerInfoParser(void);
~ServerInfoParser(void);
BOOL Load( char* pszFileName );
VOID UnLoad();
DWORD GetServerInfoNum() { return (DWORD)m_mapServerInfo.size(); }
ServerInfo* GetServerInfo( DWORD dwServerKey );
DWORD MakeKey( BYTE byWorld, BYTE byChannel, BYTE byType, BYTE byNum );
inline SERVER_INFO_MAP_ITER Begin() { return m_mapServerInfo.begin(); }
inline SERVER_INFO_MAP_ITER End() { return m_mapServerInfo.end(); }
VOID SerializeServerInfoStream( SERVER_TOTAL_INFO & INOUT rServerTotInfo, BOOL bSave );
private:
XMLParser m_XMLParser;
SERVER_INFO_MAP m_mapServerInfo;
};