diff -r 5cc91383ab1e -r 7333d7932ef7 installationservices/swi/source/swis/server/processor.cpp --- a/installationservices/swi/source/swis/server/processor.cpp Thu Aug 19 10:02:49 2010 +0300 +++ b/installationservices/swi/source/swis/server/processor.cpp Tue Aug 31 15:21:33 2010 +0300 @@ -259,10 +259,22 @@ case EInstallFiles: if (DoStateInstallFilesL()) { +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK + SwitchState(EParseApplicationRegistrationFiles); +#else SwitchState(EUpdateRegistry); +#endif } break; - +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK + case EParseApplicationRegistrationFiles: + if (DoParseApplicationRegistrationFilesL()) + { + SwitchState(EUpdateRegistry); + } + break; +#endif + case EUpdateRegistry: if (DoStateUpdateRegistryL()) { @@ -777,30 +789,11 @@ // for transaction service RemoveL(). if (fileToRemove.Length() > 3) { -#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK - TRAP(err, TransactionSession().RemoveL(fileToRemove)); -#else - TRAP(err, IntegrityServices().RemoveL(fileToRemove)); -#endif - // Display error dialog and leave if the file cannot be removed, - // ignoring missing files, media cards not present or corrupt media - - TInt noOfDetletionAttempts=1; - while ((err == KErrInUse ||err==KErrAccessDenied )&& noOfDetletionAttempts <= KMaxNoOfDeletionAttempts ) - { -#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK - TRAP(err, TransactionSession().RemoveL(fileToRemove)); -#else - TRAP(err, IntegrityServices().RemoveL(fileToRemove)); -#endif - DEBUG_PRINTF2(_L8("Deletion attempt %d"), noOfDetletionAttempts); - noOfDetletionAttempts++; - User::After(KRetryInterval); - } + err = RemoveWithRetryAttemptL(fileToRemove); if(err !=KErrNone && err != KErrNotFound && err != KErrPathNotFound && err != KErrNotReady && err != KErrCorrupt) { - CDisplayError* displayCannotDelete=CDisplayError::NewLC(iPlan.AppInfoL(), EUiCannotDelete, fileToRemove); + CDisplayError* displayCannotDelete=CDisplayError::NewLC(iPlan.AppInfoL(), EUiCannotDelete, fileToRemove); iUiHandler.ExecuteL(*displayCannotDelete); CleanupStack::PopAndDestroy(displayCannotDelete); User::Leave(err); @@ -842,25 +835,8 @@ TChar driveLetter; User::LeaveIfError(iFs.DriveToChar(drive, driveLetter)); privatePath[0] = static_cast (driveLetter); - // try to remove the private directory, ignore if it can't be found -#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK - TRAP(err, TransactionSession().RemoveL(privatePath)); -#else - TRAP(err, IntegrityServices().RemoveL(privatePath)); -#endif - TInt noOfDetletionAttempts=1; - while ((err == KErrInUse ||err==KErrAccessDenied )&& noOfDetletionAttempts <= KMaxNoOfDeletionAttempts ) - { -#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK - TRAP(err, TransactionSession().RemoveL(privatePath)); -#else - TRAP(err, IntegrityServices().RemoveL(privatePath)); -#endif - DEBUG_PRINTF2(_L8("Deletion attempt %d"), noOfDetletionAttempts); - noOfDetletionAttempts++; - User::After(KRetryInterval); - } + err = RemoveWithRetryAttemptL(privatePath); if (err != KErrNone && err != KErrNotReady && err != KErrNotFound && err != KErrPathNotFound && err != KErrCorrupt) @@ -910,3 +886,21 @@ } } +TInt CProcessor::RemoveWithRetryAttemptL(TDesC& aFileToRemove) + { + TInt err = KErrNone; + TInt noOfDetletionAttempts=1; + + do { +#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK + TRAP(err, TransactionSession().RemoveL(aFileToRemove)); +#else + TRAP(err, IntegrityServices().RemoveL(aFileToRemove)); +#endif + DEBUG_PRINTF2(_L8("Deletion attempt %d"), noOfDetletionAttempts); + noOfDetletionAttempts++; + User::After(KRetryInterval); + } while ((err == KErrInUse ||err==KErrAccessDenied )&& noOfDetletionAttempts <= KMaxNoOfDeletionAttempts ); + return err; + } +