secureswitools/swisistools/source/interpretsislib/version.h
changeset 0 ba25891c3a9e
--- /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 <istream>
+#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//<Version>
+	{
+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<wchar_t>& operator<<(std::basic_ostream<wchar_t>& 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 */