#pragma once #include #include "XMLParser.h" #include class ServerInfo; typedef std::map< DWORD, ServerInfo* > SERVER_INFO_MAP; typedef SERVER_INFO_MAP::iterator SERVER_INFO_MAP_ITER; class ServerInfoParser : public Singleton { 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; };