35 lines
936 B
C++
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;
|
|
};
|