#include "StdAfx.h" #include ".\serverinfo.h" #include #include #include ServerInfo::ServerInfo(void) { #ifdef __20080312__SOLARAUTH_SERVER_PATCH m_DataList.clear(); m_DataList.reserve( 5); #endif } ServerInfo::~ServerInfo(void) { } VOID ServerInfo::SetAgentKey( DWORD dwAgentKey ) { m_dwAgentKey = dwAgentKey; } VOID ServerInfo::SerializeStream( SERVER_INFO_EX & INOUT rServerInfo, BOOL bSave ) { if( bSave ) { memcpy( &m_ServerInfoEx, &rServerInfo, sizeof(SERVER_INFO_EX) ); } else { memcpy( &rServerInfo, &m_ServerInfoEx, sizeof(SERVER_INFO_EX) ); } } VOID ServerInfo::SetServerStatus( eSERVER_STATUS status ) { m_ServerInfoEx.m_byStatus = status; } eSERVER_STATUS ServerInfo::GetServerStatus() { return (eSERVER_STATUS)m_ServerInfoEx.m_byStatus; } VOID ServerInfo::GetServerInfo( SERVER_INFO* pServerInfo ) { if( !pServerInfo ) return; CopyMemory( pServerInfo, &m_ServerInfoEx, sizeof(SERVER_INFO) ); } #ifdef __20080312__SOLARAUTH_SERVER_PATCH VOID ServerInfo::AddDataInfo( const DataInfo& rhs) { m_DataList.push_back( rhs); } BOOL ServerInfo::RemoveDataInfo( const DataInfo& rhs) { DATA_FOLDER_LIST::iterator iter( find( m_DataList.begin(), m_DataList.end(), rhs)); if( iter != m_DataList.end() ) { m_DataList.erase( iter); return TRUE; } return FALSE; } BOOL ServerInfo::IsHave( const DataInfo& rhs ) const { DATA_FOLDER_LIST::const_iterator iter( find( m_DataList.begin(), m_DataList.end(), rhs)); if( iter != m_DataList.end() ) return TRUE; return FALSE; } ServerInfo& ServerInfo::operator =( const ServerInfo& rhs ) { m_ServerInfoEx = rhs.m_ServerInfoEx; m_dwAgentKey = rhs.m_dwAgentKey; m_DataList.clear(); m_DataList.insert( m_DataList.begin(), rhs.m_DataList.begin(), rhs.m_DataList.end()); return ( *this); } VOID ServerInfo::SerializeScriptFolderStream( SCRIPTFOLDER_TOTAL_INFO& INOUT rSCFolderInfo, BOOL bSave ) { DATA_FOLDER_LIST::iterator iter( m_DataList.begin()); for( ; iter != m_DataList.end(); ++iter ) rSCFolderInfo.m_Data[rSCFolderInfo.m_Count++] = *iter; } #endif //__20080312__SOLARAUTH_SERVER_PATCH