#include "StdAfx.h" #include ".\worldinfo.h" WorldInfo::WorldInfo(void) { } WorldInfo::~WorldInfo(void) { WORLD_MAP::iterator pos; for( pos = m_mapWorldInfo.begin() ; pos != m_mapWorldInfo.end() ; ++pos ) { _BaseInfo* pBaseInfo = pos->second; if( pBaseInfo ) delete pBaseInfo; } m_mapWorldInfo.clear(); PORT_MAP::iterator iterMap; for( iterMap = m_mapPort.begin() ; iterMap != m_mapPort.end() ; ++iterMap ) { _PortInfo* pBaseInfo = iterMap->second; if( pBaseInfo ) delete pBaseInfo; } m_mapPort.clear(); } VOID WorldInfo::GetBaseInfo( WORD wWorld, WORLD_LIST& listWorld ) { WORLD_MAP::iterator pos; for( pos = m_mapWorldInfo.lower_bound(wWorld) ; pos != m_mapWorldInfo.upper_bound(wWorld) ; ++pos ) { _BaseInfo* pInfo = pos->second; if( pInfo ) listWorld.push_back( pInfo ); } } BOOL WorldInfo::AddBaseInfo( WORD wWorld, _BaseInfo* pBaseInfo ) { if( !pBaseInfo || wWorld > MAX_WORLD_COUNT ) return FALSE; m_mapWorldInfo.insert( make_pair( wWorld, pBaseInfo ) ); return TRUE; } _PortInfo* WorldInfo::GetPortInfo( WORD wServerType ) { PORT_MAP::iterator iter; iter = m_mapPort.find( wServerType ); if( iter == m_mapPort.end() ) return NULL; return iter->second; } VOID WorldInfo::AddPortInfo( WORD wServerType, _PortInfo* pPortInfo ) { if( !pPortInfo ) return; m_mapPort.insert( make_pair(wServerType, pPortInfo ) ); }