installationservices/swi/source/swis/server/installationprocessor.h
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
equal deleted inserted replaced
25:7333d7932ef7 26:8b7f4e561641
     1 /*
     1 /*
     2 * Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2004-2009 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".
    32 #include "sisregistryfiledescription.h"
    32 #include "sisregistryfiledescription.h"
    33 #include "processor.h"
    33 #include "processor.h"
    34 
    34 
    35 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    35 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    36 #include "registrywrapper.h"
    36 #include "registrywrapper.h"
    37 #include "appregextractor.h"
       
    38 #include <swi/sisregistrypackage.h>
       
    39 #include <swi/sisregistryentry.h>
       
    40 #else
    37 #else
    41 #include "sisregistrywritablesession.h"
    38 #include "sisregistrywritablesession.h"
    42 #endif
    39 #endif
    43 
    40 
    44 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    41 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    54 class CHashContainer;
    51 class CHashContainer;
    55 class CPlan;
    52 class CPlan;
    56 class CFileExtractor;
    53 class CFileExtractor;
    57 class CSidCache;
    54 class CSidCache;
    58 class MSisDataProvider;
    55 class MSisDataProvider;
    59 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    56 
    60 class CAppRegFileData;
       
    61 #endif
       
    62 /**
    57 /**
    63  * This class processes a CApplication created by the installation planner
    58  * This class processes a CApplication created by the installation planner
    64  * @released
    59  * @released
    65  * @internalTechnology 
    60  * @internalTechnology 
    66  */
    61  */
   274 	virtual TBool DoStateProcessEmbeddedL();
   269 	virtual TBool DoStateProcessEmbeddedL();
   275 	virtual TBool DoStateExtractFilesL();
   270 	virtual TBool DoStateExtractFilesL();
   276 	virtual TBool DoStateVerifyPathsL();
   271 	virtual TBool DoStateVerifyPathsL();
   277 	virtual TBool DoStateInstallFilesL();
   272 	virtual TBool DoStateInstallFilesL();
   278 	virtual TBool DoStateDisplayFilesL();
   273 	virtual TBool DoStateDisplayFilesL();
   279 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK	
       
   280 	virtual TBool DoParseApplicationRegistrationFilesL();
       
   281 	TBool ParseRegistrationResourceFileL(const TDesC& aTargetFileName);
       
   282 	TBool GetComponentIdL(const Usif::RSoftwareComponentRegistry& aScrSession, const TUid& aPackageUid, const TInt aPackageIndex, Usif::TComponentId& aComponentId);	
       
   283 	void AddAppArcRegResourceFilesL();
       
   284 	void AddAppArcRegResourceFilesForRegEntryL( RSisRegistryEntry& aEntry);
       
   285 	TInt UserSelectedLanguageIndexL(const CApplication& aApplication) const;
       
   286 #endif	
       
   287 	virtual TBool DoStateUpdateRegistryL();
   274 	virtual TBool DoStateUpdateRegistryL();
   288 	virtual TBool DoStateProcessFilesL();
   275 	virtual TBool DoStateProcessFilesL();
   289 	virtual TBool DoStateProcessSkipFilesL();
   276 	virtual TBool DoStateProcessSkipFilesL();
   290 
   277 
   291 	virtual void DoCancel();
   278 	virtual void DoCancel();
   317 	*/
   304 	*/
   318 	CSisRegistryFileDescription* CreateSisStubRegistryFileDescriptionLC(RFs& aFs, const TDesC& aFileName);
   305 	CSisRegistryFileDescription* CreateSisStubRegistryFileDescriptionLC(RFs& aFs, const TDesC& aFileName);
   319 
   306 
   320 	/// @return true if aFilename is an Apparc registration file 
   307 	/// @return true if aFilename is an Apparc registration file 
   321 	bool FileIsApparcReg(const TDesC& aFilename) const;
   308 	bool FileIsApparcReg(const TDesC& aFilename) const;
   322 	
       
   323 private:
   309 private:
   324 	/// Security Manager provided by SWIS
   310 	/// Security Manager provided by SWIS
   325 	CSecurityManager& iSecurityManager;
   311 	CSecurityManager& iSecurityManager;
   326 		
   312 		
   327 	/// SisHelper provided by SWIS
   313 	/// SisHelper provided by SWIS
   346 	/**
   332 	/**
   347 	 * The list of Apparc registration files to pass to apparc before
   333 	 * The list of Apparc registration files to pass to apparc before
   348 	 * running an exe.
   334 	 * running an exe.
   349 	 */
   335 	 */
   350 	RPointerArray<TDesC> iApparcRegFiles;
   336 	RPointerArray<TDesC> iApparcRegFiles;
   351     
   337 	
   352 	RLoader iLoader;
   338 	RLoader iLoader;
   353 	
   339 	
   354 	/**
   340 	/**
   355 	 * The list of input received from user for the DisplayText dialog. This array is parallel bit 
   341 	 * The list of input received from user for the DisplayText dialog. This array is parallel bit 
   356 	 * array with ApplicationL().FilesToSkipOnInstall()
   342 	 * array with ApplicationL().FilesToSkipOnInstall()
   357 	 */
   343 	 */
   358 	RArray<TBool> iSkipFile;
   344 	RArray<TBool> iSkipFile;
   359 	
   345 	
   360 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
   346 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
   361 	/** The list of the software types to be registered read from the XML registration file. */
   347 	/** The list of the software types to be registered read from the XML registration file. */
   362 	RCPointerArray<Usif::CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
   348 	RCPointerArray<CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
   363 	RPointerArray<Usif::CApplicationRegistrationData> iApparcRegFileData;
       
   364    /**
       
   365      * The list of Apparc registration files to parse to populate SCR
       
   366      */ 
       
   367     RPointerArray<CAppRegFileData> iApparcRegFilesForParsing;
       
   368     
       
   369     CAppRegExtractor *iAppRegExtractor;  
       
   370         
       
   371 #endif
   349 #endif
   372 	};
   350 	};
   373 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
   351 
   374 class CAppRegFileData:public CBase
       
   375     {
       
   376 public:
       
   377     static CAppRegFileData* NewLC(const TDesC& aAppRegFile, const CSisRegistryPackage& aSisRegistryPackage); 
       
   378     static CAppRegFileData* NewL(const TDesC& aAppRegFile, const CSisRegistryPackage& aSisRegistryPackage);
       
   379     TDesC& GetAppRegFile();
       
   380     CSisRegistryPackage& GetSisRegistryPackage();
       
   381     ~CAppRegFileData();
       
   382 private:
       
   383     CAppRegFileData();
       
   384     void ConstructL(const TDesC& aAppRegFile, const CSisRegistryPackage& aSisRegistryPackage);
       
   385     HBufC *iAppRegFile;
       
   386     CSisRegistryPackage *iSisRegistryPackage;
       
   387     };
       
   388 #endif
       
   389 	
   352 	
   390 // inline functions
   353 // inline functions
   391 
   354 
   392 inline const CSisRegistryFileDescription& CInstallationProcessor::CFileCopyDescription::FileDescription() const
   355 inline const CSisRegistryFileDescription& CInstallationProcessor::CFileCopyDescription::FileDescription() const
   393 	{
   356 	{