installationservices/swi/source/swis/server/installationprocessor.h
branchRCL_3
changeset 25 7333d7932ef7
parent 4 3eebb1e54d3a
child 26 8b7f4e561641
equal deleted inserted replaced
24:5cc91383ab1e 25:7333d7932ef7
     1 /*
     1 /*
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2004-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".
    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>
    37 #else
    40 #else
    38 #include "sisregistrywritablesession.h"
    41 #include "sisregistrywritablesession.h"
    39 #endif
    42 #endif
    40 
    43 
    41 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    44 #ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    51 class CHashContainer;
    54 class CHashContainer;
    52 class CPlan;
    55 class CPlan;
    53 class CFileExtractor;
    56 class CFileExtractor;
    54 class CSidCache;
    57 class CSidCache;
    55 class MSisDataProvider;
    58 class MSisDataProvider;
    56 
    59 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
       
    60 class CAppRegFileData;
       
    61 #endif
    57 /**
    62 /**
    58  * This class processes a CApplication created by the installation planner
    63  * This class processes a CApplication created by the installation planner
    59  * @released
    64  * @released
    60  * @internalTechnology 
    65  * @internalTechnology 
    61  */
    66  */
   269 	virtual TBool DoStateProcessEmbeddedL();
   274 	virtual TBool DoStateProcessEmbeddedL();
   270 	virtual TBool DoStateExtractFilesL();
   275 	virtual TBool DoStateExtractFilesL();
   271 	virtual TBool DoStateVerifyPathsL();
   276 	virtual TBool DoStateVerifyPathsL();
   272 	virtual TBool DoStateInstallFilesL();
   277 	virtual TBool DoStateInstallFilesL();
   273 	virtual TBool DoStateDisplayFilesL();
   278 	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	
   274 	virtual TBool DoStateUpdateRegistryL();
   287 	virtual TBool DoStateUpdateRegistryL();
   275 	virtual TBool DoStateProcessFilesL();
   288 	virtual TBool DoStateProcessFilesL();
   276 	virtual TBool DoStateProcessSkipFilesL();
   289 	virtual TBool DoStateProcessSkipFilesL();
   277 
   290 
   278 	virtual void DoCancel();
   291 	virtual void DoCancel();
   304 	*/
   317 	*/
   305 	CSisRegistryFileDescription* CreateSisStubRegistryFileDescriptionLC(RFs& aFs, const TDesC& aFileName);
   318 	CSisRegistryFileDescription* CreateSisStubRegistryFileDescriptionLC(RFs& aFs, const TDesC& aFileName);
   306 
   319 
   307 	/// @return true if aFilename is an Apparc registration file 
   320 	/// @return true if aFilename is an Apparc registration file 
   308 	bool FileIsApparcReg(const TDesC& aFilename) const;
   321 	bool FileIsApparcReg(const TDesC& aFilename) const;
       
   322 	
   309 private:
   323 private:
   310 	/// Security Manager provided by SWIS
   324 	/// Security Manager provided by SWIS
   311 	CSecurityManager& iSecurityManager;
   325 	CSecurityManager& iSecurityManager;
   312 		
   326 		
   313 	/// SisHelper provided by SWIS
   327 	/// SisHelper provided by SWIS
   332 	/**
   346 	/**
   333 	 * The list of Apparc registration files to pass to apparc before
   347 	 * The list of Apparc registration files to pass to apparc before
   334 	 * running an exe.
   348 	 * running an exe.
   335 	 */
   349 	 */
   336 	RPointerArray<TDesC> iApparcRegFiles;
   350 	RPointerArray<TDesC> iApparcRegFiles;
   337 	
   351     
   338 	RLoader iLoader;
   352 	RLoader iLoader;
   339 	
   353 	
   340 	/**
   354 	/**
   341 	 * The list of input received from user for the DisplayText dialog. This array is parallel bit 
   355 	 * The list of input received from user for the DisplayText dialog. This array is parallel bit 
   342 	 * array with ApplicationL().FilesToSkipOnInstall()
   356 	 * array with ApplicationL().FilesToSkipOnInstall()
   343 	 */
   357 	 */
   344 	RArray<TBool> iSkipFile;
   358 	RArray<TBool> iSkipFile;
   345 	
   359 	
   346 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
   360 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
   347 	/** The list of the software types to be registered read from the XML registration file. */
   361 	/** The list of the software types to be registered read from the XML registration file. */
   348 	RCPointerArray<CSoftwareTypeRegInfo> iSoftwareTypeRegInfoArray;
   362 	RCPointerArray<Usif::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         
   349 #endif
   371 #endif
   350 	};
   372 	};
   351 
   373 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
       
   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
   352 	
   389 	
   353 // inline functions
   390 // inline functions
   354 
   391 
   355 inline const CSisRegistryFileDescription& CInstallationProcessor::CFileCopyDescription::FileDescription() const
   392 inline const CSisRegistryFileDescription& CInstallationProcessor::CFileCopyDescription::FileDescription() const
   356 	{
   393 	{