#include "StdAfx.h" #include ".\accessinfo.h" #include "ServerInfo.h" #include "ServerInfoParser.h" AccessInfo::AccessInfo(void) { } AccessInfo::~AccessInfo(void) { } BOOL AccessInfo::InsertAccessServer( ACCESS_SERVER* pAccessServer ) { if( !pAccessServer ) return FALSE; m_mapAccessServer.insert( std::make_pair( pAccessServer->m_dwServerKey, pAccessServer ) ); return TRUE; } ACCESS_SERVER* AccessInfo::GetAccessServer( DWORD dwServerKey ) { ACCESS_SERVER_ITER iter = m_mapAccessServer.find( dwServerKey ); if( iter == m_mapAccessServer.end() ) return NULL; return iter->second; } VOID AccessInfo::SerializeStream( SERVER_ACCESS_TOTAL_INFO& info, BOOL bSave ) { if( bSave ) { //1. ÀÌÁ¦ ÇöÀç ¸Þ¸ð¸® »óÀÇ °ªÀ» ¼öÁ¤Çϰí, ACCESS_SERVER_ITER iter = NULL; for( int i =0; i < info.m_Count; i++ ) { ACCESS_SERVER* pAccessServer = GetAccessServer( info.m_Data[i].m_dwServerKey ); if( !pAccessServer ) continue; //ÇöÀçÀÇ °ª°ú ´Ù¸£¸é.. ¹Ù²Û´Ù. if( pAccessServer->m_bAccess != info.m_Data[i].bAccessRight ) pAccessServer->m_bAccess = info.m_Data[i].bAccessRight; } } else { info.m_Count = 0; ACCESS_SERVER_ITER iter = NULL; for( iter = m_mapAccessServer.begin(); iter != m_mapAccessServer.end(); ++iter ) { ACCESS_SERVER* pServer = iter->second; if( !pServer ) continue; ServerInfo* pServerInfo = ServerInfoParser::Instance()->GetServerInfo( pServer->m_dwServerKey ); if( !pServerInfo ) continue; SERVER_ACCESS_INFO AccessInfo; pServerInfo->GetServerInfo( (SERVER_INFO*)&AccessInfo ); AccessInfo.bAccessRight = pServer->m_bAccess; info.m_Data[info.m_Count] = AccessInfo; info.m_Count++; } } }