installationservices/swcomponentregistry/inc_private/scrrequestimpl.h
changeset 25 98b66e4fb0be
parent 24 84a16765cd86
child 33 8110bf1194d1
equal deleted inserted replaced
24:84a16765cd86 25:98b66e4fb0be
     1 /*
     1 /*
     2 * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    28 
    28 
    29 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
    29 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
    30 #include "screntries_internal.h"
    30 #include "screntries_internal.h"
    31 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
    31 #endif //SYMBIAN_ENABLE_SPLIT_HEADERS
    32 #include "screntries.h"
    32 #include "screntries.h"
       
    33 #include "appregentries.h"
       
    34 #include "appreginfo.h"
    33 
    35 
    34 namespace Usif
    36 namespace Usif
    35 	{
    37 	{
    36 	// constants
    38 	// constants
    37 	static const TLanguage KLangNone = TLanguage(0);
    39 	static const TLanguage KLangNone = TLanguage(0);
    43 	class CStatement;
    45 	class CStatement;
    44 	class CScrAsyncRequestImpl;
    46 	class CScrAsyncRequestImpl;
    45 	class CScrSession;
    47 	class CScrSession;
    46 	class CScrSubsession;
    48 	class CScrSubsession;
    47 	class CCompViewSubsessionContext;
    49 	class CCompViewSubsessionContext;
       
    50 	class CAppInfoViewSubsessionContext;
       
    51 	class CRegInfoForApplicationSubsessionContext;
       
    52 	class CAppRegistrySubsessionContext;
       
    53 	class CApplicationRegInfoSubsessionContext; 
    48 
    54 
    49 	class CScrRequestImpl : public CBase
    55 	class CScrRequestImpl : public CBase
    50 		{
    56 		{
    51 	public:
    57 	public:
    52 		static CScrRequestImpl* NewL(RFs& aFs, RFile& aDatabaseFile, RFile& aJournalFile);
    58 		static CScrRequestImpl* NewL(RFs& aFs, RFile& aDatabaseFile, RFile& aJournalFile);
   122 		void SetScomoStateL(const RMessage2& aMessage);
   128 		void SetScomoStateL(const RMessage2& aMessage);
   123 		void GetPluginUidWithMimeTypeL(const RMessage2& aMessage) const;
   129 		void GetPluginUidWithMimeTypeL(const RMessage2& aMessage) const;
   124 		void GetPluginUidWithComponentIdL(const RMessage2& aMessage) const;
   130 		void GetPluginUidWithComponentIdL(const RMessage2& aMessage) const;
   125 		
   131 		
   126 		// Security Layer Requests
   132 		// Security Layer Requests
   127 		TBool GetInstallerSidForComponentL(TComponentId aComponentId, TSecureId& aSid) const;
   133 		TBool GetInstallerOrExecutionEnvSidsForComponentL(TComponentId aComponentId, RArray<TSecureId>& aSids) const;
   128 		TBool GetSidsForSoftwareTypeL(const HBufC* aSoftwareTypeName, TSecureId& aInstallerSid, TSecureId& aExecutableEnvSid) const;
   134 		TBool GetSidsForSoftwareTypeIdL(TInt aSoftwareTypeId, RArray<TSecureId>& aSids) const;
   129 		TBool GetExecutionEnvSidForComponentL(TComponentId aComponentId, TSecureId& aSid) const;
   135 		TBool GetSidsForSoftwareTypeL(const HBufC* aSoftwareTypeName, RArray<TSecureId>& aSids) const;
   130 		TBool IsInstallerOrExecutionEnvSidL(TSecureId& aSid) const;
   136 		TBool IsInstallerOrExecutionEnvSidL(TSecureId& aSid) const;
   131 		TBool GetIsComponentOrphanedL(TComponentId aComponentId) const;
   137 		TBool GetIsComponentOrphanedL(TComponentId aComponentId) const;
       
   138 		TInt GetSoftwareTypeForComponentL(TComponentId aComponentId) const;
       
   139 		
       
   140 		// AppArc Requests
       
   141 		void GetApplicationLaunchersSizeL(const RMessage2& aMessage) const;
       
   142 		void GetApplicationLaunchersDataL(const RMessage2& aMessage) const;
   132 		
   143 		
   133 		// Component's view operations
   144 		// Component's view operations
   134 		CComponentFilter* ReadComponentFilterL(const RMessage2& aMessage) const;
   145 		CComponentFilter* ReadComponentFilterL(const RMessage2& aMessage) const;
   135 		CStatement* OpenComponentViewL(CComponentFilter& aFilter, RArray<TComponentId>& aComponentFilterSuperset, TBool& aFilterSupersetInUse) const;
   146 		CStatement* OpenComponentViewL(CComponentFilter& aFilter, RArray<TComponentId>& aComponentFilterSuperset, TBool& aFilterSupersetInUse) const;
   136 		void NextComponentSizeL(const RMessage2& aMessage, CStatement* aStmt, CComponentFilter* aFilter, CComponentEntry*& aEntry, CCompViewSubsessionContext* aSubsessionContext) const;
   147 		void NextComponentSizeL(const RMessage2& aMessage, CStatement* aStmt, CComponentFilter* aFilter, CComponentEntry*& aEntry, CCompViewSubsessionContext* aSubsessionContext) const;
   137 		void NextComponentDataL(const RMessage2& aMessage, CComponentEntry*& aEntry) const;
   148 		void NextComponentDataL(const RMessage2& aMessage, CComponentEntry*& aEntry) const;
   138 		void NextComponentSetSizeL(const RMessage2& aMessage, CStatement* aStmt, CComponentFilter* aFilter, RPointerArray<CComponentEntry>& aEntryList, CCompViewSubsessionContext* aSubsessionContext) const;
   149 		void NextComponentSetSizeL(const RMessage2& aMessage, CStatement* aStmt, CComponentFilter* aFilter, RPointerArray<CComponentEntry>& aEntryList, CCompViewSubsessionContext* aSubsessionContext) const;
   139 		void NextComponentSetDataL(const RMessage2& aMessage, RPointerArray<CComponentEntry>& aEntryList) const;
   150 		void NextComponentSetDataL(const RMessage2& aMessage, RPointerArray<CComponentEntry>& aEntryList) const;
   140 				
   151 		
   141 		// Files's list operations
   152 		// Files's list operations
   142 		CStatement* OpenFileListL(const RMessage2& aMessage) const; 	 
   153 		CStatement* OpenFileListL(const RMessage2& aMessage) const; 	 
   143 		void NextFileSizeL(const RMessage2& aMessage, CStatement* aStmt, HBufC*& aFilePath) const;
   154 		void NextFileSizeL(const RMessage2& aMessage, CStatement* aStmt, HBufC*& aFilePath) const;
   144 		void NextFileDataL(const RMessage2& aMessage, HBufC*& aFilePath) const;
   155 		void NextFileDataL(const RMessage2& aMessage, HBufC*& aFilePath) const;
   145 		void NextFileSetSizeL(const RMessage2& aMessage, CStatement* aStmt, RPointerArray<HBufC>& aFileList) const;
   156 		void NextFileSetSizeL(const RMessage2& aMessage, CStatement* aStmt, RPointerArray<HBufC>& aFileList) const;
   153 		// Sofwtare type management operations
   164 		// Sofwtare type management operations
   154 		void AddSoftwareTypeL(const RMessage2& aMessage);
   165 		void AddSoftwareTypeL(const RMessage2& aMessage);
   155 		void DeleteSoftwareTypeL(const RMessage2& aMessage);
   166 		void DeleteSoftwareTypeL(const RMessage2& aMessage);
   156 		void GetDeletedMimeTypesL(const RMessage2& aMessage) const;
   167 		void GetDeletedMimeTypesL(const RMessage2& aMessage) const;
   157 		
   168 		
       
   169 		// AppInfo's view operations
       
   170 		//CAppRegistrySubsession
       
   171         void OpenApplicationRegistrationViewL(const RMessage2& aMessage, CAppRegistrySubsessionContext*  aSubsessionContext);
       
   172         void OpenApplicationRegistrationForAppUidsViewL(const RMessage2& aMessage, CAppRegistrySubsessionContext*  aSubsessionContext);
       
   173         void NextApplicationRegistrationInfoSizeL(const RMessage2& aMessage, CApplicationRegistrationData*& aApplicationRegistration, CAppRegistrySubsessionContext*  aSubsessionContext);
       
   174         void NextApplicationRegistrationInfoDataL(const RMessage2& aMessage, CApplicationRegistrationData*& aApplicationRegistration);
       
   175         
       
   176 		//CAppInfoViewSubsession
       
   177         CAppInfoFilter* ReadAppInfoFilterL(const RMessage2& aMessage) const;
       
   178         void OpenAppInfoViewL(CAppInfoFilter& aFilter, CAppInfoViewSubsessionContext* aSubsessionContext);
       
   179         TBool DoesAppWithScreenModeExistL(TUid aUid, TInt aScreenMode, TLanguage aLocale) const;
       
   180         void GetAppUidsL(CAppInfoViewSubsessionContext* aSubsessionContext, TBool aScreenModePresent = EFalse) const;
       
   181         void GetEmbeddableAppUidsL(CAppInfoViewSubsessionContext* aSubsessionContext, TBool aScreenModePresent = EFalse) const;
       
   182         void GetServerAppUidsL(CAppInfoViewSubsessionContext* aSubsessionContext, TUid aServiceUid, TBool aScreenModePresent = EFalse) const;
       
   183         void GetAppUidsWithEmbeddabilityFilterL(CAppInfoViewSubsessionContext* aSubsessionContext, TEmbeddableFilter& aFilter, TBool aScreenModePresent = EFalse) const;
       
   184         void GetAppUidsWithCapabilityMaskAndValueL(CAppInfoViewSubsessionContext* aSubsessionContext,TUint aCapabilityAttrFilterMask, TUint aCapabilityAttrFilterValue, TBool aScreenModePresent = EFalse) const;
       
   185         void GetAppServicesL(TUid aAppUid, RPointerArray<CServiceInfo>& aServiceInfoArray, TLanguage aLocale) const;
       
   186         void GetServiceImplementationsL(TUid aServiceUid, RPointerArray<CServiceInfo>& aServiceInfoArray, TLanguage aLocale) const;
       
   187         void GetServiceImplementationsL(TUid aServiceUid, TDesC& aDataType, RPointerArray<CServiceInfo>& aServiceInfoArray, TLanguage aLocale) const;
       
   188         void GetAppServiceOpaqueDataL(TUid aAppUid, TUid aServiceUid, RPointerArray<CServiceInfo>& aServiceInfoArray, TLanguage aLocale) const;
       
   189         void GetOpaqueDataArrayL(TUid aAppUid, TUid aServiceUid, RPointerArray<COpaqueData>& aOpaqueDataArray, TLanguage aLanguage) const;
       
   190         void NextAppInfoSizeL(const RMessage2& aMessage, TAppRegInfo*& aAppInfo, CAppInfoViewSubsessionContext* aSubsessionContext);
       
   191         void NextAppInfoDataL(const RMessage2& aMessage, TAppRegInfo*& aAppInfo);
       
   192 
       
   193         //CRegInfoForApplicationSubsession
       
   194         void GetServiceUidSizeL(const RMessage2& aMessage, TUid aAppUid,CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   195         void GetServiceUidDataL(const RMessage2& aMessage, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   196         void SetLocaleForRegInfoForApplicationSubsessionContextL(const RMessage2& aMessage, CRegInfoForApplicationSubsessionContext *aSubsessionContext);
       
   197         void GetApplicationLanguageL(const RMessage2& aMessage, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   198         void GetDefaultScreenNumberL(const RMessage2& aMessage, TUid aAppUid) const;
       
   199         void GetNumberOfOwnDefinedIconsL(const RMessage2& aMessage, TUid aAppUid,CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   200         void GetViewSizeL(const RMessage2& aMessage, TUid aAppUid, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   201         void GetViewDataL(const RMessage2& aMessage, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   202         void GetViewsL(RPointerArray<Usif::CAppViewData>& aViewInfoArray,TUid aAppUid, TLanguage aLanguage)const;
       
   203         void GetAppOwnedFilesSizeL(const RMessage2& aMessage, TUid aAppUid, CRegInfoForApplicationSubsessionContext *aSubsessionContext)const ;
       
   204         void GetAppOwnedFilesDataL(const RMessage2& aMessage, CRegInfoForApplicationSubsessionContext *aSubsessionContext)const ;
       
   205         void GetAppCharacteristicsL(const RMessage2& aMessage, TUid aAppUid) const;
       
   206         void GetAppIconForFileNameL(const RMessage2& aMessage, TUid aAppUid, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   207         void GetAppViewIconFileNameL(const RMessage2& aMessage, TUid aAppUid, CRegInfoForApplicationSubsessionContext *aSubsessionContext) const;
       
   208 		void GetAppPropertiesInfoL(CApplicationRegistrationData& aApplicationRegistrationaApplicationRegistration,TUid aAppUid, TLanguage aLanguage);
       
   209 		//CApplicationRegInfoSubsession
       
   210         void GetAppForDataTypeAndServiceL(const RMessage2& aMessage) const;
       
   211         void GetAppForDataTypeL(const RMessage2& aMessage) const;
       
   212         void GetAppServiceInfoSizeL(const RMessage2& aMessage, CApplicationRegInfoSubsessionContext *aSubsessionContext) const;
       
   213         void GetAppServiceInfoDataL(const RMessage2& aMessage, CApplicationRegInfoSubsessionContext *aSubsessionContext) const;
       
   214         void GetApplicationInfoL(const RMessage2& aMessage);
       
   215         
       
   216         //General functions to retrieve various application information, mostly used by CAppRegistrySubsession
       
   217         TBool GetApplicationRegistrationInfoL(CApplicationRegistrationData& aApplicationRegistrationaApplicationRegistration,TUid aAppUid) const;
       
   218         void GetFileOwnershipInfoL(CApplicationRegistrationData& aApplicationRegistrationaApplicationRegistration,TUid aAppUid) const;
       
   219         void GetDataTypesL(RPointerArray<Usif::CDataType> & aDataTypes,TInt aServiceId)const;
       
   220         void GetServiceInfoL(CApplicationRegistrationData& aApplicationRegistrationaApplicationRegistration,TUid aAppUid,TLanguage aLanguage) const;
       
   221         void GetLocalizableAppInfoL(CApplicationRegistrationData& aApplicationRegistrationaApplicationRegistration,TUid aAppUid, TLanguage aLanguage);
       
   222         CCaptionAndIconInfo* GetCaptionAndIconInfoL(TInt aCaptionAndIconId)const;
       
   223         void GetAppRegOpaqueDataL(CApplicationRegistrationData& aApplicationRegistration,TUid aAppUid,TLanguage aLanguage) const;
       
   224         
       
   225         //General functions
       
   226 		void GetLocalesForAppIdL(RArray<TInt>& aLocales, TUid aAppUid) const;
       
   227 		TBool CheckIfAppUidExistsL(const TUid aAppUid) const;
       
   228         CStatement* CreateStatementForAppInfoL(const TDesC& aStatement, TLanguage aLocale, TInt aValuesNum,...) const;
       
   229         void GetCaptionAndShortCaptionInfoForLocaleL(TUid aAppUid, TLanguage aLocale, TAppCaption& aShortCaption, TAppCaption& aCaption);
       
   230         void GenerateNonNativeAppUidL(const RMessage2& aMessage);
       
   231 
       
   232 		//Application related
       
   233 		void AddApplicationEntryL(const RMessage2& aMessage);		
       
   234 		void DeleteAllAppsWithinPackageL(const RMessage2& aMessage);
       
   235 		void DeleteAllAppsWithinPackageInternalL(const TComponentId aComponentId);
       
   236 		void DeleteApplicationEntryL(const RMessage2& aMessage);
       
   237 		void DeleteApplicationEntryInternalL(const TInt aAppUid);
       
   238 		void GetComponentIdForAppL(const RMessage2& aMessage) const;
       
   239 	    TBool GetComponentIdForAppInternalL(TUid aAppUid, TComponentId& aComponentId) const;
       
   240 		void GetAppUidsForComponentSizeL(const RMessage2& aMessage) const;
       
   241 		void GetAppUidsForComponentDataL(const RMessage2& aMessage)const; 
       
   242 
       
   243 		void AddFileOwnershipInfoL(TUid aAppUid, const TDesC& aFileName);
       
   244 		void AddServiceInfoL(TUid aAppUid, CServiceInfo*  aAppServiceInfoEntry);
       
   245 		void AddServiceDataTypeL(TInt aServiceUid, Usif::CDataType* aDataTypeEntry);
       
   246 		void AddLocalizableAppInfoL(TUid aAppUid, Usif::CLocalizableAppInfo* aLocalizableAppInfoEntry);
       
   247 		void AddViewDataL(TInt aLocalAppInfoId, Usif::CAppViewData* aViewDataEntry);
       
   248 		TInt AddCaptionAndIconInfoL(CCaptionAndIconInfo* aCaptionAndIconEntry);
       
   249 		void AddPropertyL(TUid aAppUid, Usif::CPropertyEntry* aAppPropertiesEntry);
       
   250 		void AddOpaqueDataL(TUid aAppUid, Usif::COpaqueData*  aOpaqueDataEntry, TUid aServiceUid = TUid::Null());
       
   251 		void DeleteFromTableL(const TDesC& aTableName, const TDesC& aAttribute, const TInt aValue);		
   158 	private:
   252 	private:
   159 		CScrRequestImpl(RFs& aFs);
   253 		CScrRequestImpl(RFs& aFs);
   160 		void ConstructL(RFile& aDatabaseFile, RFile& aJournalFile);
   254 		void ConstructL(RFile& aDatabaseFile, RFile& aJournalFile);
   161 	
   255 	
   162 	private:
   256 	private:
   180 		enum TFileOperationType
   274 		enum TFileOperationType
   181 			{
   275 			{
   182 			EFileRegistered,
   276 			EFileRegistered,
   183 			EFileUnregistered
   277 			EFileUnregistered
   184 			};
   278 			};
       
   279 		
       
   280 		enum TAccessMode
       
   281             {
       
   282             ETransactionalSid   = 0x0001,    // Sids requiring component/application transactional support, usually Installers/Execution layers
       
   283             EMaxAccessMode      = 0xFFFF
       
   284             };
   185 		
   285 		
   186 		class TRollbackParams
   286 		class TRollbackParams
   187 			{
   287 			{
   188 		public:
   288 		public:
   189 			TRollbackParams(TInt aIdColumnVal, CScrRequestImpl& aReqImplHandle)
   289 			TRollbackParams(TInt aIdColumnVal, CScrRequestImpl& aReqImplHandle)
   239 		TBool IsSoftwareTypeExistingL(TInt aSoftwareTypeId) const;
   339 		TBool IsSoftwareTypeExistingL(TInt aSoftwareTypeId) const;
   240 		void GetGeneralComponentEntrySizeL(const RMessage2& aMessage, const TDesC& aConditionColumn, TUint32 aConditionValue, TInt aReturnSizeSlot, TLanguage aLocale, CComponentEntry*& aComponentEntry) const;
   340 		void GetGeneralComponentEntrySizeL(const RMessage2& aMessage, const TDesC& aConditionColumn, TUint32 aConditionValue, TInt aReturnSizeSlot, TLanguage aLocale, CComponentEntry*& aComponentEntry) const;
   241         TInt GetDriveFromFilePath(const TDesC& aFilePath, TDriveUnit& aDriveUnit) const;
   341         TInt GetDriveFromFilePath(const TDesC& aFilePath, TDriveUnit& aDriveUnit) const;
   242 		TInt InstalledDrivesToBitmaskL(const TDriveList& aDriveList) const;
   342 		TInt InstalledDrivesToBitmaskL(const TDriveList& aDriveList) const;
   243 		void UpdateInstalledDrivesL(TComponentId aComponentId, const TDesC& aFilePath, TFileOperationType aType);
   343 		void UpdateInstalledDrivesL(TComponentId aComponentId, const TDesC& aFilePath, TFileOperationType aType);
   244 		TBool GetIntSoftwareTypeDataForComponentLC(TComponentId aComponentId, const TDesC& aColumnName, TInt& aValue) const;
   344 		TBool GetSifPluginUidIInternalL(TInt aSoftwareTypeId, TInt& aValue) const;
   245 		TInt GetInstalledDrivesBitmaskL(TComponentId aComponentId) const;
   345 		TInt GetInstalledDrivesBitmaskL(TComponentId aComponentId) const;
   246 		CGlobalComponentId* ParseGlobalComponendIdLC(const TDesC& aGlobalId) const;
   346 		CGlobalComponentId* ParseGlobalComponendIdLC(const TDesC& aGlobalId) const;
   247 		void GetGeneralDependencyListL(const TDesC& aSelectColumn, const TDesC& aConditionColumn, const TDesC& aConditionValue, RPointerArray<CVersionedComponentId> &aVerCompIdList) const;
   347 		void GetGeneralDependencyListL(const TDesC& aSelectColumn, const TDesC& aConditionColumn, const TDesC& aConditionValue, RPointerArray<CVersionedComponentId> &aVerCompIdList) const;
   248 		void ReadAndSetCommonComponentPropertyL(const RMessage2& aMessage, const TDesC& aPropertyColumn);
   348 		void ReadAndSetCommonComponentPropertyL(const RMessage2& aMessage, const TDesC& aPropertyColumn);
   249 		TBool HasFilesOnDriveL(TDriveUnit aDrive, TComponentId aComponentId);
   349 		TBool HasFilesOnDriveL(TDriveUnit aDrive, TComponentId aComponentId);
   251 		TBool IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, TUint32 aInstallerSecureId, TUint32 aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray);
   351 		TBool IsSoftwareTypeExistingL(TUint32 aSwTypeId, TUint32 aSifPluginUid, TUint32 aInstallerSecureId, TUint32 aExecutionLayerSecureId, const RPointerArray<HBufC>& aMimeTypesArray, const RPointerArray<CLocalizedSoftwareTypeName>& aLocalizedNamesArray);
   252 		void SubsessionAddLocalizableSoftwareTypeNameL(CStatement& aStmt, CComponentEntry& aEntry, TLanguage aLocale, CCompViewSubsessionContext* aSubsessionContext) const;
   352 		void SubsessionAddLocalizableSoftwareTypeNameL(CStatement& aStmt, CComponentEntry& aEntry, TLanguage aLocale, CCompViewSubsessionContext* aSubsessionContext) const;
   253 		TBool IsDriveReadOnlyL(TInt driveIndex) const;
   353 		TBool IsDriveReadOnlyL(TInt driveIndex) const;
   254 		TBool CheckForMediaPresenceL(TComponentId aComponentId) const;
   354 		TBool CheckForMediaPresenceL(TComponentId aComponentId) const;
   255 		
   355 		
       
   356 		TBool GetIntforConditionL(const TDesC& aSelectColumn, const TDesC& aTableInfo, const TDesC& aConditionColumn,TInt aConditionValue,TInt& aRetrievedValue) const;
       
   357 		TInt  GetServiceIdForDataTypeL(const TDesC& aType) const;
       
   358 		TBool GetAppUidForServiceIdL(const TInt ServiceId, TUid& aAppUid) const;
       
   359 		TBool GetNearestAppLanguageL(TLanguage aRequiredLocale,TUid appUid,TLanguage& aFinalAppLocale) const;
       
   360 
   256 		// DB Version management
   361 		// DB Version management
   257 		void InitializeDbVersionL();
   362 		void InitializeDbVersionL();
   258 		void VerifyDbVersionCompatibilityL() const;
   363 		void VerifyDbVersionCompatibilityL() const;
   259 		
   364 		
   260 	private:
   365 	private:
   268 		mutable RPointerArray<CPropertyEntry> iProperties;
   373 		mutable RPointerArray<CPropertyEntry> iProperties;
   269 		mutable RPointerArray<CVersionedComponentId> iVerCompIdList; // The list of supplier/dependant versioned component IDs
   374 		mutable RPointerArray<CVersionedComponentId> iVerCompIdList; // The list of supplier/dependant versioned component IDs
   270 		mutable RPointerArray<HBufC> iDeletedMimeTypes; // The list of MIME types deleted as the result of software type deletion.
   375 		mutable RPointerArray<HBufC> iDeletedMimeTypes; // The list of MIME types deleted as the result of software type deletion.
   271 		mutable RPointerArray<CScrLogEntry> iLogEntries; // The list of log entries recorded in a session
   376 		mutable RPointerArray<CScrLogEntry> iLogEntries; // The list of log entries recorded in a session
   272 		mutable RArray<TLanguage> iMatchingSupportedLanguageList; // The list of matching supported language list recorded in a session
   377 		mutable RArray<TLanguage> iMatchingSupportedLanguageList; // The list of matching supported language list recorded in a session
   273 		mutable RPointerArray<CLocalizableComponentInfo> iCompLocalizedInfoArray; //Component's localized information (name, vendor, locale) 
   378 		mutable RPointerArray<CLocalizableComponentInfo> iCompLocalizedInfoArray; //Component's localized information (name, vendor, locale)
       
   379 		mutable RArray<TUid> iComponentAppUids;  //List of Application Uids associated with a component
       
   380 		mutable RPointerArray<CLauncherExecutable> iLaunchers;
   274 		};
   381 		};
   275 	
   382 	
   276 	} // End of namespace Usif
   383 	} // End of namespace Usif
   277 
   384 
   278 #endif /* SCRREQUESTIMPL_H */
   385 #endif /* SCRREQUESTIMPL_H */