installationservices/swi/inc/swi/swtypereginfo.h
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
--- a/installationservices/swi/inc/swi/swtypereginfo.h	Tue Aug 31 15:21:33 2010 +0300
+++ b/installationservices/swi/inc/swi/swtypereginfo.h	Wed Sep 01 12:22:02 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -29,23 +29,152 @@
 #include <e32base.h>
 #include <s32mem.h>
 #include <ct/rcpointerarray.h>
-#include <usif/scr/screntries_platform.h>
 
 namespace Swi
 	{
 	_LIT(KTxtSoftwareTypeComponentProperty, "softwareTypes");
 
+	class CLocalizedSoftwareTypeName : public CBase
+		{
+	public:
+		IMPORT_C static CLocalizedSoftwareTypeName* NewL(const TDesC& aName, TLanguage aLocale);
+		IMPORT_C static CLocalizedSoftwareTypeName* NewLC(const TDesC& aName, TLanguage aLocale);
+		IMPORT_C static CLocalizedSoftwareTypeName* NewL(RReadStream& aStream);
+		
+		IMPORT_C virtual ~CLocalizedSoftwareTypeName();
+		
+		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+		
+		inline const TDesC& Name() const;
+		inline TLanguage Locale() const;
+		
+	private:
+		CLocalizedSoftwareTypeName();
+		CLocalizedSoftwareTypeName(TLanguage aLocale);
+
+		void InternalizeL(RReadStream& aStream);
+		
+	private:
+		HBufC* iName;
+		TLanguage iLocale;
+		};
+
+// ##########################################################################################
+
+	class CSoftwareTypeRegInfo : public CBase
+		{
+	public:
+		IMPORT_C static CSoftwareTypeRegInfo* NewL(const TDesC& aUniqueSoftwareTypeName);
+		IMPORT_C static CSoftwareTypeRegInfo* NewL(RReadStream& aStream);
+
+		IMPORT_C virtual ~CSoftwareTypeRegInfo();
+		
+		IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+		IMPORT_C TInt ExternalizedSize() const;
+
+		inline void SetSifPluginUid(TUid aUid);
+		inline void SetInstallerSecureId(TSecureId aSecureId);
+		inline void SetExecutionLayerSecureId(TSecureId aSecureId);
+		IMPORT_C void SetMimeTypeL(const TDesC& aMimeType);
+		IMPORT_C void SetLocalizedSoftwareTypeNameL(TLanguage aLanguage, const TDesC& aName);
+
+		inline const TDesC& UniqueSoftwareTypeName() const;
+		inline TUid SifPluginUid() const;
+		inline TSecureId InstallerSecureId() const;
+		inline TSecureId ExecutionLayerSecureId() const;
+		inline const RPointerArray<HBufC>& MimeTypes() const;
+		inline const RPointerArray<CLocalizedSoftwareTypeName>& LocalizedSoftwareTypeNames() const;
+
+	private:
+		CSoftwareTypeRegInfo();
+		void InternalizeL(RReadStream& aStream);
+
+		enum { EUniqueSwTypeNameMaxLength = 32 }; 
+
+		HBufC* iUniqueSoftwareTypeName;
+		TUid iSifPluginUid;
+		TSecureId iInstallerSecureId;
+		TSecureId iExecutionLayerSecureId;
+		RCPointerArray<HBufC> iMimeTypes;
+		RCPointerArray<CLocalizedSoftwareTypeName> iLocalizedSoftwareTypeNames;
+		};
+
+// ##########################################################################################
+
 	class SoftwareTypeRegInfoUtils
 		{
 	public:
-		IMPORT_C static void SerializeArrayL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray);
-		IMPORT_C static void UnserializeArrayL(RReadStream& aStream, RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
-		IMPORT_C static void SerializeUniqueSwTypeNamesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames);
+		IMPORT_C static void SerializeArrayL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf8& aSerializedArray);
+		IMPORT_C static void UnserializeArrayL(RReadStream& aStream, RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray);
+		IMPORT_C static void SerializeUniqueSwTypeNamesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RBuf& aSerializedNames);
 		IMPORT_C static void UnserializeUniqueSwTypeNamesL(const TDesC& aSerializedNames, RArray<TPtrC>& aUniqueSwTypeNames);
-		IMPORT_C static void ExtractMimeTypesL(const RPointerArray<Usif::CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes);
+		IMPORT_C static void ExtractMimeTypesL(const RPointerArray<CSoftwareTypeRegInfo>& aSwTypeRegInfoArray, RPointerArray<HBufC8>& aMimeTypes);
 	public:
 		enum { KUniqueNameSeparator = 0x1E };  // 'record separator'
 		};
+
+// ##########################################################################################
+
+	inline const TDesC& CLocalizedSoftwareTypeName::Name() const
+		{
+		return *iName;
+		}
+
+	inline TLanguage CLocalizedSoftwareTypeName::Locale() const
+		{
+		return iLocale;
+		}
+
+// ##########################################################################################
+
+	inline void CSoftwareTypeRegInfo::SetSifPluginUid(TUid aUid)
+		{
+		iSifPluginUid = aUid;
+		}
+
+	inline void CSoftwareTypeRegInfo::SetInstallerSecureId(TSecureId aSecureId)
+		{
+		iInstallerSecureId = aSecureId;
+		}
+
+	inline void CSoftwareTypeRegInfo::SetExecutionLayerSecureId(TSecureId aSecureId)
+		{
+		iExecutionLayerSecureId = aSecureId;
+		}
+
+	inline const TDesC& CSoftwareTypeRegInfo::UniqueSoftwareTypeName() const
+		{
+		if (iUniqueSoftwareTypeName == NULL)
+			{
+			return KNullDesC;
+			}
+		return *iUniqueSoftwareTypeName;
+		}
+
+	inline TUid CSoftwareTypeRegInfo::SifPluginUid() const
+		{
+		return iSifPluginUid;
+		}
+
+	TSecureId CSoftwareTypeRegInfo::InstallerSecureId() const
+		{
+		return iInstallerSecureId;
+		}
+
+	TSecureId CSoftwareTypeRegInfo::ExecutionLayerSecureId() const
+		{
+		return iInstallerSecureId;
+		}
+
+	const RPointerArray<HBufC>& CSoftwareTypeRegInfo::MimeTypes() const
+		{
+		return iMimeTypes;
+		}
+
+	const RPointerArray<CLocalizedSoftwareTypeName>& CSoftwareTypeRegInfo::LocalizedSoftwareTypeNames() const
+		{
+		return iLocalizedSoftwareTypeNames;
+		}
 	}
 
 #endif // SWTYPEREGINFO_H