installationservices/swi/source/apprscparser/apprscparser.h
changeset 25 98b66e4fb0be
child 55 ac7f90a6ff4c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/source/apprscparser/apprscparser.h	Fri Apr 16 15:05:20 2010 +0300
@@ -0,0 +1,120 @@
+/*
+* 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 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:
+* apprscreader.h 
+*
+*/
+
+#ifndef __APPRSCPARSER_H__
+#define __APPRSCPARSER_H__
+
+#include <usif/scr/appregentries.h>
+
+class RFs;
+class CResourceFile;
+class RResourceReader;
+
+/**
+ * @file
+ * Application resource file parser for SWI
+ *
+ * @internalTechnology
+ * @prototype
+*/
+
+const TInt KMaxAppGroupName=0x10;
+const TInt KMaximumDataTypeLength=256;
+typedef TBuf<KMaxAppGroupName> TAppGroupName;
+
+/** Defines an application's attributes as a set of bit flags. */
+enum TCapabilityAttribute
+    {    
+    EBuiltAsDll         = 0x00000001,
+    EControlPanelItem   = 0x00000002,
+    ENonNative          = 0x00000004
+    };
+
+class CLocalizableRsc : public CBase
+    {
+public:
+    static CLocalizableRsc* NewL();
+    static CLocalizableRsc* NewLC();
+    ~CLocalizableRsc();
+    
+private:
+    CLocalizableRsc() {}
+    
+public:
+    TFileName iFileName;
+    CResourceFile* iRscFile;
+    TLanguage iLanguage;
+    };
+
+/**
+ This class reads application information from a combination of registration file,
+ optional localizable resource file and optional icon file.
+*/
+class CAppRegInfoReader : public CBase
+	{
+public:
+    IMPORT_C static CAppRegInfoReader* NewL(RFs& aFs, const TDesC& aRegistrationFileName);
+    IMPORT_C static CAppRegInfoReader* NewL(RFs& aFs, const RFile& aRegistrationFile);
+    IMPORT_C Usif::CApplicationRegistrationData* ReadL(const RArray<TLanguage>& aAppLanguages);    
+    IMPORT_C ~CAppRegInfoReader();
+
+private:
+    CAppRegInfoReader(RFs& aFs, const TDesC& aRegistrationFileName);
+    CAppRegInfoReader(RFs& aFs, const RFile& aRegistrationFile);
+	void ConstructL();
+	void ReadMandatoryInfoL(RResourceReader& aResourceReader);
+	void ReadNonLocalizableInfoL(RResourceReader& aResourceReader, TUint& aLocalizableResourceId, const RArray<TLanguage>& aAppLanguages);
+	void ReadNonLocalizableOptionalInfoL(RResourceReader& aResourceReader, const CResourceFile* aRegistrationFile);
+	void ReadMimeTypesSupportedL(RResourceReader& aResourceReader, RPointerArray<Usif::CDataType>& aDataTypes);
+	void ReadLocalizableInfoL(const CResourceFile& aResourceFile, TUint aResourceId, TLanguage aLanguage);
+	void ReadOpaqueDataL(TUint aResourceId, const CResourceFile* aRegistrationFile, RPointerArray<Usif::COpaqueData>& aOpaqueDataArray);
+	HBufC* CreateFullIconFileNameL(const TDesC& aIconFileName) const;
+	void FindLocalizableResourceFilesL(const TLanguage& aApplicationLanguage);
+	void CheckForDefaultResourceFileL();
+	TBool TypeUidIsForRegistrationFile(const TUidType& aUidType);    
+     
+    static void Panic(TInt aPanic);
+	
+public:
+	//From ReadMandatoryInfoL
+	HBufC* iAppBinaryFullName;
+	//From ReadNonLocalizableInfoL
+	Usif::TApplicationCharacteristics iAppCharacteristics;
+    TUint iDefaultScreenNumber;
+    RPointerArray<HBufC> iOwnedFileArray;
+    //From ReadNonLocalizableOptionalInfoL
+    RPointerArray<Usif::CServiceInfo> iServiceArray; 
+    RPointerArray<Usif::COpaqueData> iOpaqueDataArray;
+    //From ReadLocalizableInfoL
+    RPointerArray<Usif::CLocalizableAppInfo> iLocalizableAppInfoArray;    
+            	
+private:
+    RFs& iFs;
+    TUid iAppUid;   
+    TUidType iAppBinaryUidType;
+    TFileName iTempLocalizableRscFileName; // Localizsed resource file name from rsc
+    TBool iLegacyDataTypesPresent;
+    RPointerArray<CLocalizableRsc> iLocalizableRscArray;    
+            
+	const TDesC* iRegistrationFileName;
+	const RFile* iRegFileHandle;
+	TBool iReadOnlyOneLocalizedRscInfo;
+    TBool iUseRegFileHandle;
+	};
+
+#endif	// __APPRSCPARSER_H__