diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/interpretsislib/version.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/interpretsislib/version.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "version.h" + +bool Version::IsValid() const +{ + return ((iMajor >= 0 && iMajor <= 127) && + (iMinor >= 0 && iMinor <= 99) && + (iBuild >= 0 && iBuild <= 32767)); +} + +bool operator==(const Version& aLhs, const Version& aRhs) +{ + return + aLhs.iMajor == aRhs.iMajor + && aLhs.iMinor == aRhs.iMinor + && aLhs.iBuild == aRhs.iBuild; +} + +bool operator<(const Version& aLhs, const Version& aRhs) +{ + return (aLhs != aRhs) && !(aLhs > aRhs); +} + +bool operator>(const Version& aLhs, const Version& aRhs) +{ + if (aLhs == aRhs || aLhs.iMajor < aRhs.iMajor) return false; + + if (aLhs.iMajor > aRhs.iMajor) + return true; + else if (aLhs.iMinor == aRhs.iMinor) // major == + return aLhs.iBuild > aRhs.iBuild; + else if (aLhs.iMinor > aRhs.iMinor) + return true; + else // minor == + return aLhs.iBuild > aRhs.iBuild; + + return false; +} + +bool operator!=(const Version& aLhs, const Version& aRhs) +{ + return !(aLhs == aRhs); +} + +bool operator<=(const Version& aLhs, const Version& aRhs) +{ + return (aLhs == aRhs) || aLhs < aRhs; +} + +bool operator>=(const Version& aLhs, const Version& aRhs) +{ + return (aLhs == aRhs) || aLhs > aRhs; + +}