secureswitools/swisistools/source/rscparser/aplappinforeader.h
branchRCL_3
changeset 25 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/swisistools/source/rscparser/aplappinforeader.h	Tue Aug 31 15:21:33 2010 +0300
@@ -0,0 +1,111 @@
+// 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:
+// aplappinforeader.h
+//
+/** 
+* @file aplappinforeader.h
+*
+* @internalComponent
+* @released
+*/
+#ifndef __APLAPPINFOREADER_H__
+#define __APLAPPINFOREADER_H__
+
+
+#include "apaid.h"
+#include <vector>
+#include "apmstd.h"
+#include "barsc2.h"
+#include "barsread2.h"
+#include "e32lang.h"
+#include "aplapplistitem.h"
+#include "filedescription.h"
+
+using namespace std;
+
+/**
+Reads application information from a combination of registration file,
+optional localisable resource file and optional icon file.
+
+@internalComponent
+*/
+class CAppInfoReader
+	{
+public:
+	static CAppInfoReader* NewL(const std::string& aRegistrationFileName, TUid aAppUid, const std::string& aLocalizeFilePath);
+	TBool ReadL();
+	TBool ReadL(const std::vector<FileDescription*>& aFileDescription, std::string& aRomPath, int aInRom);
+	~CAppInfoReader();
+public:
+	Ptr16* AppBinaryFullName();
+	TUidType AppBinaryUidType() const;
+	TUid AppUid() const;
+	void Capability(TAppCapability& aCapabilityBuf) const;
+	TUint DefaultScreenNumber() const;
+	std::vector<CAppViewData*>* Views();
+	std::vector<CAppLocalizableInfo*> LocalizableInfo();
+	std::vector<CAppLocalOpaqueDataInfo*> GetOpaqueDataArray();
+	std::vector<Ptr16*>* OwnedFiles();
+	
+	Ptr16* Caption();
+	Ptr16* ShortCaption();
+	TInt NumOfAppIcons() const;
+	Ptr16* IconFileName();
+	TBool NonMbmIconFile() const;
+	
+	Ptr16* LocalisableResourceFileName();
+	TLanguage AppLanguage() const;
+	std::vector<TAppServiceInfo*>* ServiceArray(TInt& aIndexOfFirstOpenService);
+	Ptr16* CreateFullIconFileNameL(const PtrC16* aIconFileName) const;
+	
+private:
+	CAppInfoReader(const std::string& aRegistrationFileName, TUid aAppUid, const std::string& aLocalizeFilePath);
+	void ReadMimeTypesSupportedL(RResourceReader& aResourceReader, std::vector<TDataTypeWithPriority*>& aMimeTypesSupported);
+	void ReadMandatoryInfoL(RResourceReader& aResourceReader);
+	TInt ReadNonLocalisableInfoL(RResourceReader& aResourceReader, TUint& aLocalisableResourceId);
+	TInt ReadNonLocalisableOptionalInfoL(RResourceReader& aResourceReader, CResourceFile* aRegistrationFile);
+	TInt ReadLocalisableInfoLoopL(CResourceFile& aResourceFile, TUint aResourceId, TBool& aUseDefaultIcons, TInt& iLocale);
+	void ReadOpaqueDataL(TUint aResourceId, CResourceFile* aRegistrationFile, TUint32 aServiceUid);
+	void ReadAppSecurityInfo();
+		
+private:
+	TUid iAppUid;
+	Ptr16* iAppBinaryFullName;
+	TUidType iAppBinaryUidType;
+	TAppCapability iCapability;
+	TUint iDefaultScreenNumber;
+	Ptr16* iCaption;
+	Ptr16* iShortCaption;
+	TInt iNumOfAppIcons;
+	std::vector<CAppViewData*>* iViewDataArray;
+	std::vector<Ptr16*>* iOwnedFileArray;
+	Ptr16* iIconFileName;
+	TBool iNonMbmIconFile; // ETrue if icon filename is not an MBM file, however, EFalse does not necessarily mean it is an MBM file
+	Ptr16* iLocalisableResourceFileName;
+	TLanguage iApplicationLanguage;
+	std::vector<TAppServiceInfo*>* iServiceArray;
+	TInt iIndexOfFirstOpenService;
+	TBool iOpenServiceIsLegacy;
+	std::vector<CAppLocalOpaqueDataInfo*> iOpaqueDataArray;
+private:
+	const std::string& iRegistrationFileName;
+	const std::string& iDrivePath;
+	std::vector<CAppLocalizableInfo*> iAppLocalizableInfo;
+	TBool iHasWriteDeviceDataCap;
+    TBool iIsSidTrusted;
+    // This flag is used to determine if app security info was allready read
+    TBool iSecurityInfoHasBeenRead;
+	};
+
+#endif	// __APLAPPINFOREADER_H__