Files
Sun1602/Tools/SunUpdateManager/SunUpdateServer/ServerInfo.cpp
T
2022-10-26 12:25:11 +08:00

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