110 lines
2.1 KiB
C++
110 lines
2.1 KiB
C++
#include "StdAfx.h"
|
|
#include ".\serverinfo.h"
|
|
#include <ConvertVersion.h>
|
|
#include <ChangeIP.h>
|
|
#include <algorithm>
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|