--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/rscparser/commontypes.h Tue Aug 31 15:21:33 2010 +0300
@@ -0,0 +1,308 @@
+// Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+/**
+* @file commontypes.h
+*
+* @internalComponent
+* @released
+*/
+#ifndef COMMONTYPES_H
+#define COMMONTYPES_H
+
+#include "symbiantypes.h"
+#include "uidtype.h"
+#include <vector>
+using namespace std;
+using namespace rscparser;
+
+/**
+Returns the smaller of two values.
+
+@param aLeft The first value to be compared.
+@param aRight The second value to be compared.
+
+@return The smaller value.
+*/
+template <class T>
+inline T Min(T aLeft,T aRight)
+ {return(aLeft<aRight ? aLeft : aRight);}
+
+/**
+Returns the smaller of two objects, where the right hand object is a treated
+as a TInt for the purpose of comparison.
+
+@param aLeft The first value to be compared.
+@param aRight The second value to be compared.
+
+@return The smaller value.
+*/
+template <class T>
+inline T Min(T aLeft,TUint aRight)
+ {return(aLeft<(TInt)aRight ? aLeft : (T)aRight);}
+
+/**
+Returns the larger of two values.
+
+@param aLeft The first value to be compared.
+@param aRight The second value to be compared.
+
+@return The larger value.
+*/
+template <class T>
+inline T Max(T aLeft,T aRight)
+ {return(aLeft<aRight ? aRight : aLeft);}
+
+/**
+Returns the larger of two objects, where the right hand object is a treated
+as a TInt for the purpose of comparison.
+
+@param aLeft The first value to be compared.
+@param aRight The second value to be compared.
+
+@return The larger value.
+ */
+template <class T>
+inline T Max(T aLeft,TUint aRight)
+ {return(aLeft<(TInt)aRight ? (TInt)aRight : aLeft);}
+
+/**
+Class to allocate heap memory and store a pointer to it
+for unicode data.
+The maximun allocated length and current length would also
+be maintained.
+*/
+class Ptr8
+{
+
+public:
+ /**
+ Allocate heap of the specified size and
+ store the pointer to it.
+ @param aSize Size of the heap to be allocated.
+ */
+ Ptr8(const TUint32& aSize);
+
+ /**
+ Free the allocated heap
+ */
+ ~Ptr8();
+
+ /**
+ Get the pointer to the allocated heap
+ */
+ TUint8* GetPtr() const;
+ /**
+ Set the pointer
+ */
+ void SetPtr(TUint8* aPtr);
+
+ /**
+ Set the length
+ */
+ void SetLength(const TUint32& aLength);
+ void ForceLength(const TUint32& aLength);
+
+ /**
+ Update the length of the current pointer
+ with the length provided
+ @param aLength Length to be updated
+ */
+ TBool UpdateLength(const TUint32& aLength);
+
+ /**
+ To fetch the current length
+ */
+ TUint32 GetLength() const;
+
+ /**
+ To fetch the Max length
+ */
+ TUint32 GetMaxLength() const;
+
+ TUint8 operator[](TInt anIndex) const;
+
+ void Append(TUint8* aBuffer, TInt aLen);
+
+private:
+ TUint8* iPtr;
+ TUint32 iLength;
+ const TUint32 iMaxLength;
+};
+
+
+/**
+Class to allocate heap memory and store a pointer to it
+for non-unicode data.
+The maximun allocated length and current length would also
+be maintained.
+*/
+class Ptr16
+{
+
+public:
+ /**
+ Allocate heap of the specified size and
+ store the pointer to it.
+ @param aSize Size of the heap to be allocated.
+ */
+ Ptr16(const TUint32& aSize);
+
+ /**
+ Free the allocated heap
+ */
+ ~Ptr16();
+
+ /**
+ Get the pointer to the allocated heap
+ */
+ TUint16* GetPtr() const;
+
+ /**
+ Set the pointer
+ */
+ void SetPtr(TUint16* aPtr);
+
+ /**
+ Update the length of the current pointer
+ with the length provided
+ @param aLength Length to be updated
+ */
+ TBool UpdateLength(const TUint32& aLength);
+
+ /**
+ To fetch the current length
+ */
+ TUint32 GetLength() const;
+
+ TUint16 operator[](TInt anIndex) const;
+
+private:
+ TUint16* iPtr;
+ TUint32 iLength;
+ const TUint32 iMaxLength;
+};
+
+
+/**
+Structure to represent TPtrC8 from symbian data type
+*/
+struct PtrC8
+{
+ PtrC8();
+ ~PtrC8();
+ const TUint8* iPtr;
+ TUint32 iMaxLength;
+};
+
+
+/**
+Structure to represent TPtrC16 from symbian data type
+*/
+struct PtrC16
+{
+ PtrC16();
+ ~PtrC16();
+ TUint16* iPtr;
+ TUint32 iMaxLength;
+};
+
+
+/**
+Structure to hold the UIDs of the RSC file
+*/
+
+struct sTUid
+{
+ sTUid();
+ TUint32 iUid1;
+ TUint32 iUid2;
+ TUint32 iUid3;
+};
+
+/**
+System wide error code -1 : item not found.
+
+A system wide error code indicates an error in the environment, or in
+user input from which a program may recover.
+*/
+const TInt KErrNotFound=(-1); // Must remain set to -1
+
+/**
+System wide error code 0 : this represents the no-error condition.
+
+A system wide error code indicates an error in the environment, or in
+user input from which a program may recover.
+*/
+const TInt KErrNone=0;
+
+/**
+System wide error code -25 : indicates that end of file has been reached.
+
+A system wide error code indicates an error in the environment, or in
+user input from which a program may recover.
+
+Note that RFile::Read() is a higher-level interface. When the end of
+the file is reached, it returns zero bytes in the destination descriptor, and
+a KErrNone return value. KErrEof is not used for this purpose; other error
+conditions are returned only if some other error condition was indicated on
+the file.
+*/
+const TInt KErrEof=(-25);
+
+
+const TInt KExecutableImageUidValue=0x1000007a;
+
+const TUid KExecutableImageUidVal={KExecutableImageUidValue};
+
+/** The hexadecimal value of the 2nd UID that defines a DLL as being a Unicode
+UI application. In .mmp files, the hexadecimal number is explicitly inserted
+as the first value following the UID keyword.
+
+@publishedAll
+@released
+@see KAppUidValue */
+const TInt KAppUidValue16 = 0x100039CE;
+
+/** The 2nd UID that defines a DLL as being a Unicode UI application.
+
+@publishedAll
+@released
+@see KUidApp */
+const TUid KUidApp16={KAppUidValue16};
+
+/** The type-independent 2nd UID that identifies a DLL as being a UI application.
+
+@publishedAll
+@released
+@see KUidApp16 */
+#define KUidApp KUidApp16
+
+/**
+The uid for the Open service.
+
+@publishedPartner
+@released
+*/
+const TUid KOpenServiceUid = { 0x10208DCA };
+
+/** An application group name.
+
+This is a name that allows applications to be categorized, for instance "Games"
+or "Utilities".
+
+@publishedAll
+@released */
+typedef Ptr16* TAppGroupName;
+#endif /* COMMONTYPES_H */