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

83 lines
1.2 KiB
C++

#include "StdAfx.h"
#include ".\versionchecker.h"
#include <algorithm>
#include <utility>
namespace VersionEx
{
using namespace std::rel_ops;
VersionChecker::VersionChecker(void)
: m_bLoad( FALSE)
{
m_VerList.clear();
m_VerList.reserve( 50);
}
VersionChecker::~VersionChecker(void)
{
m_VerList.clear();
}
BOOL VersionChecker::Init( const TCHAR *pszFile)
{
if( !pszFile )
return FALSE;
return m_Parser.SetFile( pszFile);
}
BOOL VersionChecker::Load()
{
if( IsLoad() )
return FALSE;
UDTToken Token;
VersionInfoEx ver;
while( TRUE)
{
Token = m_Parser.GetToken();
if( Token == END )
break;
if( Token == NAME )
{
ver.SetVersion( m_Parser.GetTokenString() );
m_VerList.push_back( ver);
}
}
_Sort();
return ( m_bLoad = TRUE);
}
VersionInfoEx VersionChecker::GetLastVer() const
{
if( m_VerList.empty() )
return VersionInfoEx();
return m_VerList.back();
}
VersionInfoEx VersionChecker::GetFirstVer() const
{
if( m_VerList.empty() )
return VersionInfoEx();
return m_VerList.front();
}
//VersionInfoEx
//VersionChecker::GetCurrentVer() const
//{
//}
VOID VersionChecker::_Sort()
{
if( m_VerList.empty() )
return;
sort( m_VerList.begin(), m_VerList.end());
}
}