diff -r 5cc91383ab1e -r 7333d7932ef7 secureswitools/swisistools/source/rscparser/uidtype.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/rscparser/uidtype.h Tue Aug 31 15:21:33 2010 +0300 @@ -0,0 +1,123 @@ +// Copyright (c) 2009 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: +// uidtype.h +// + +/** +* @file uidtype.h +* +* @internalComponent +* @released +*/ + +#ifndef __UIDTYPE_H__ +#define __UIDTYPE_H__ + +#include +#include "symbiantypes.h" + +namespace rscparser +{ +/** +Defines a Null UID value. +*/ +const TInt KNullUidValue=0; + +/** +Defines the number of TUids that form a TUidType. +*/ +const TInt KMaxCheckedUid=3; + +/** +A globally unique 32-bit number. +*/ +class TUid + { +public: + TBool operator==(const TUid& aUid) const; + TBool operator!=(const TUid& aUid) const; + static inline TUid Uid(TInt aUid); + static inline TUid Null(); + TUint32 GetUid(); + +public: + /** + The 32-bit integer UID value. + */ + TUint32 iUid; + }; + + +/** +Defines a null UID +*/ +#define NullUid TUid::Null() + +/** +Constructs a Null-valued TUid object. + +@return The constructed Null-valued TUid object. +*/ +inline TUid TUid::Null() + {TUid uid={KNullUidValue};return uid;} + +/** +Constructs the TUid object from a 32-bit integer. + +@param aUid The 32-bit integer value from which the TUid object is to be + constructed. + +@return The constructed TUid object. +*/ +inline TUid TUid::Uid(TInt aUid) + {TUid uid={aUid};return uid;} + +/** +Encapsulates a set of three unique identifiers (UIDs) which, in combination, +identify a system object such as a GUI application or a DLL. The three +component UIDs are referred to as UID1, UID2 and UID3. + +An object of this type is referred to as a compound identifier or a UID type. +*/ +class TUidType + { +public: + + TUidType(); + TUidType(TUid aUid1,TUid aUid2,TUid aUid3); + TBool operator==(const TUidType& aUidType) const; + const TUid& operator[](TInt anIndex) const; + +private: + TUid iUid[KMaxCheckedUid]; + }; + +/** +Packages a Uid type together with a checksum. +*/ +class TCheckedUid + { + public: + TCheckedUid(); + TCheckedUid(const TUidType& aUidType); + TCheckedUid(const TUint8* aDes, TInt aLen); + void Set(const TUidType& aUidType); + void Set(const TUint8* aDes, TInt aLen); + const TUidType& UidType() const; +private: + TUidType iType; + TUint32 iCheck; + }; +} +#endif \ No newline at end of file