83 lines
1.2 KiB
C++
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());
|
|
}
|
|
} |