diff -r 0ca79e3612d9 -r 9ba7f05d28a5 connectivitymodules/SeCon/services/pcd/src/sconqueue.cpp --- a/connectivitymodules/SeCon/services/pcd/src/sconqueue.cpp Wed Jun 23 18:02:53 2010 +0300 +++ b/connectivitymodules/SeCon/services/pcd/src/sconqueue.cpp Tue Jul 06 14:06:02 2010 +0300 @@ -22,6 +22,7 @@ #include "sconpcdconsts.h" #include "debug.h" #include // installer errors +#include // ============================= MEMBER FUNCTIONS =============================== @@ -165,12 +166,16 @@ // Set the task to completed -mode // ----------------------------------------------------------------------------- // -void CSConTaskQueue::CompleteTask( TInt aTask, TInt aError ) +TInt CSConTaskQueue::CompleteTask( TInt aTask, TInt aError ) { LOGGER_WRITE_1( "CSConTaskQueue::CompleteTask aError: %d", aError ); + TInt ret(KErrNone); TInt index( KErrNotFound ); CSConTask* temp = new CSConTask(); + if (!temp) + return KErrNoMemory; + temp->iTaskId = aTask; index = iQueue.Find( temp, CSConTaskQueue::Match ); delete temp; @@ -203,16 +208,19 @@ progress = KSConCodeInstErrUserCancel; break; case SwiUI::KSWInstErrFileCorrupted: + case KErrSifCorruptedPackage: LOGGER_WRITE("File is corrupted"); iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstErrFileCorrupted; break; case SwiUI::KSWInstErrInsufficientMemory: + case KErrSifNotEnoughSpace: LOGGER_WRITE("Insufficient free memory in the drive to perform the operation"); iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstErrInsufficientMemory; break; case SwiUI::KSWInstErrPackageNotSupported: + case KErrSifUnsupportedSoftwareType: LOGGER_WRITE("Installation of the package is not supported"); iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstErrPackageNotSupported; @@ -223,6 +231,7 @@ progress = KSConCodeInstErrSecurityFailure; break; case SwiUI::KSWInstErrMissingDependency: + case KErrSifMissingDependencies: LOGGER_WRITE("Package cannot be installed due to missing dependency"); iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstErrMissingDependency; @@ -233,6 +242,7 @@ progress = KSConCodeInstErrFileInUse; break; case SwiUI::KSWInstErrGeneralError: + case KErrSifUnknown: LOGGER_WRITE("Unknown error"); iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstErrGeneralError; @@ -262,6 +272,77 @@ iQueue[index]->SetCompleteValue( complete ); progress = KSConCodeInstUpgradeError; break; + + case KErrSifMissingBasePackage: + LOGGER_WRITE("KErrSifMissingBasePackage"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifMissingBasePackage; + break; + case KErrSifOverflow: + LOGGER_WRITE("KErrSifOverflow"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifOverflow; + break; + case KErrSifSameVersionAlreadyInstalled: + LOGGER_WRITE("KErrSifSameVersionAlreadyInstalled"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifSameVersionAlreadyInstalled; + break; + case KErrSifNewerVersionAlreadyInstalled: + LOGGER_WRITE("KErrSifNewerVersionAlreadyInstalled"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifNewerVersionAlreadyInstalled; + break; + case KErrSifAlreadyActivated: + LOGGER_WRITE("KErrSifAlreadyActivated"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifAlreadyActivated; + break; + case KErrSifAlreadyDeactivated: + LOGGER_WRITE("KErrSifAlreadyDeactivated"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifAlreadyDeactivated; + break; + case KErrSifBadComponentId: + LOGGER_WRITE("KErrSifBadComponentId"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifBadComponentId; + break; + case KErrSifBadInstallerConfiguration: + LOGGER_WRITE("KErrSifBadInstallerConfiguration"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifBadInstallerConfiguration; + break; + case KErrSifPackageCannotBeInstalledOnThisDevice: + LOGGER_WRITE("KErrSifPackageCannotBeInstalledOnThisDevice"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifPackageCannotBeInstalledOnThisDevice; + break; + case KErrSifUnsupportedLanguage: + LOGGER_WRITE("KErrSifUnsupportedLanguage"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrSifUnsupportedLanguage; + break; + case KErrScrWriteOperationInProgress: + LOGGER_WRITE("KErrScrWriteOperationInProgress"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrScrWriteOperationInProgress; + break; + case KErrScrReadOperationInProgress: + LOGGER_WRITE("KErrScrReadOperationInProgress"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrScrReadOperationInProgress; + break; + case KErrScrNoActiveTransaction: + LOGGER_WRITE("KErrScrNoActiveTransaction"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrScrNoActiveTransaction; + break; + case KErrScrUnsupportedLocale: + LOGGER_WRITE("KErrScrUnsupportedLocale"); + iQueue[index]->SetCompleteValue( complete ); + progress = KSConCodeInstErrScrUnsupportedLocale; + break; default : iQueue[index]->SetCompleteValue( complete ); @@ -281,7 +362,12 @@ iQueue[index]->SetProgressValue( progress ); } + else + { + ret = KErrNotFound; + } StartQueue(); + return ret; } // ----------------------------------------------------------------------------- @@ -289,19 +375,32 @@ // Set the task progress value // ----------------------------------------------------------------------------- // -void CSConTaskQueue::SetTaskProgress( TInt aTask, TInt aProgressValue ) +TInt CSConTaskQueue::SetTaskProgress( TInt aTask, TInt aProgressValue ) { + TInt ret( KErrNone ); TInt index( KErrNotFound ); CSConTask* temp = new CSConTask(); - temp->iTaskId = aTask; - index = iQueue.Find( temp, CSConTaskQueue::Match ); - delete temp; - - if ( index != KErrNotFound ) + if (temp) { - iQueue[index]->SetProgressValue( aProgressValue ); + temp->iTaskId = aTask; + index = iQueue.Find( temp, CSConTaskQueue::Match ); + delete temp; + + if ( index != KErrNotFound ) + { + iQueue[index]->SetProgressValue( aProgressValue ); + } + else + { + ret = KErrNotFound; + } } + else + { + ret = KErrNoMemory; + } + return ret; } // ----------------------------------------------------------------------------- @@ -315,17 +414,24 @@ TInt index; CSConTask* temp = new CSConTask(); - temp->iTaskId = aTaskId; - index = iQueue.Find( temp, CSConTaskQueue::Match ); - delete temp; - - if ( index != KErrNotFound ) + if (temp) { - aTask = iQueue[index]; + temp->iTaskId = aTaskId; + index = iQueue.Find( temp, CSConTaskQueue::Match ); + delete temp; + + if ( index != KErrNotFound ) + { + aTask = iQueue[index]; + } + else + { + ret = KErrNotFound; + } } else { - ret = KErrNotFound; + ret = KErrNoMemory; } return ret; } @@ -335,27 +441,40 @@ // Removes a task from the queue // ----------------------------------------------------------------------------- // -void CSConTaskQueue::RemoveTask( TInt aTask ) +TInt CSConTaskQueue::RemoveTask( TInt aTask ) { + TInt ret(KErrNone); TInt index( KErrNotFound ); CSConTask* temp = new CSConTask(); - temp->iTaskId = aTask; - index = iQueue.Find( temp, CSConTaskQueue::Match ); - delete temp; - - if ( index != KErrNotFound ) + if (temp) { - delete iQueue[index]; - iQueue.Remove( index ); - iQueue.Compress(); + temp->iTaskId = aTask; + index = iQueue.Find( temp, CSConTaskQueue::Match ); + delete temp; + + if ( index != KErrNotFound ) + { + delete iQueue[index]; + iQueue.Remove( index ); + iQueue.Compress(); + } + else + { + ret = KErrNotFound; + } + + if ( iQueue.Count() == 0 ) + { + StopQueue(); + iQueue.Reset(); + } } - - if ( iQueue.Count() == 0 ) + else { - StopQueue(); - iQueue.Reset(); + ret = KErrNoMemory; } + return ret; } // -----------------------------------------------------------------------------