diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/interpretsislib/version.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/interpretsislib/version.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,106 @@ +/* +* 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: +* version.cpp +* +*/ + + +#ifndef VERSION_H +#define VERSION_H + +#include +#include "serialisable.h" +#include "serialiser.h" +#include "deserialiser.h" +#include "symbiantypes.h" + +class Serialiser; +class Deserialiser; +/** +* @file VERSION.H +* +* @internalComponent +* @released +*/ +class Version : public Serialisable// + { +public: + /** + Constructor + */ + Version () : iMajor(0), iMinor(0), iBuild(0) {} + + Version (TInt aMa, TInt aMi, TInt aB ) + : iMajor(aMa), + iMinor(aMi), + iBuild(aB) {} + + ~Version () {}; + + virtual void Internalize(Deserialiser& des) + { + des >> iMajor >> iMinor >> iBuild; + } + virtual void Externalize(Serialiser& ser) + { + ser << iMajor << iMinor << iBuild; + } + //virtual Serialisable* Make() { return new Version; } + + TInt GetMajor() const { return iMajor;} + TInt GetMinor() const { return iMinor;} + TInt GetBuild() const { return iBuild;} + + /** + * Determines whether the iMajor, iMinor and iBuild components of the stored version are valid and + * within range. + * + * Note: This function does NOT support Wildcards + * + * @return True is returned if ALL of the following conditions result to True: + * - iMajor ranges between 0 and 127 inclusive + * - iMinor ranges between 0 and 99 inclusive + * - iBuild ranges between 0 and 32767 inclusive + * + * Otherwise, False is returned. + */ + bool IsValid() const; + + friend bool operator==(const Version& aLhs, const Version& aRhs); + friend bool operator<(const Version& aLhs, const Version& aRhs); + friend bool operator>(const Version& aLhs, const Version& aRhs); + friend bool operator!=(const Version& aLhs, const Version& aRhs); + friend bool operator<=(const Version& aLhs, const Version& aRhs); + friend bool operator>=(const Version& aLhs, const Version& aRhs); + +private: + TInt iMajor; + TInt iMinor; + TInt iBuild; + }; + + +std::basic_ostream& operator<<(std::basic_ostream& os, + Version& ver); + + +bool operator==(const Version& aLhs, const Version& aRhs); +bool operator<(const Version& aLhs, const Version& aRhs); +bool operator>(const Version& aLhs, const Version& aRhs); +bool operator!=(const Version& aLhs, const Version& aRhs); +bool operator<=(const Version& aLhs, const Version& aRhs); +bool operator>=(const Version& aLhs, const Version& aRhs); + +#endif /* VERSION_H */