--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/common/conmltask/src/sconconmltask.cpp Wed Sep 01 12:20:56 2010 +0100
@@ -0,0 +1,1696 @@
+/*
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: ConML Task implementations
+*
+*/
+
+
+// INCLUDE FILES
+
+#include "sconconmltask.h"
+
+// -----------------------------------------------------------------------------
+// CSConReboot::CSConReboot()
+//
+// -----------------------------------------------------------------------------
+//
+CSConReboot::CSConReboot() : iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConReboot::~CSConReboot()
+//
+// -----------------------------------------------------------------------------
+//
+CSConReboot::~CSConReboot()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConReboot::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConReboot* CSConReboot::CopyL()
+ {
+ CSConReboot* copy = new (ELeave) CSConReboot();
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConDataOwner::CSConDataOwner()
+//
+// -----------------------------------------------------------------------------
+//
+CSConDataOwner::CSConDataOwner()
+ {
+ iHasFiles = ENoFiles;
+ iJavaHash = NULL;
+ iUid.iUid = 0;
+
+ //Initialize iDriveList with zeros
+ iDriveList.Fill( '\x0' );
+ }
+
+// -----------------------------------------------------------------------------
+// CSConDataOwner::~CSConDataOwner()
+//
+// -----------------------------------------------------------------------------
+//
+CSConDataOwner::~CSConDataOwner()
+ {
+ delete iJavaHash;
+ iJavaHash = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConDataOwner::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConDataOwner* CSConDataOwner::CopyL()
+ {
+ CSConDataOwner* copy = new (ELeave) CSConDataOwner();
+ copy->iType = iType;
+ copy->iUid = iUid;
+ copy->iDriveList.Copy( iDriveList );
+ copy->iPackageName = iPackageName;
+ copy->iReqReboot = iReqReboot;
+ copy->iHasFiles = iHasFiles;
+ copy->iSupportsInc = iSupportsInc;
+ copy->iSupportsSel = iSupportsSel;
+ copy->iDelayToPrep = iDelayToPrep;
+ copy->iSize = iSize;
+ copy->iDataOwnStatus = iDataOwnStatus;
+ copy->iTransDataType = iTransDataType;
+
+ if ( iJavaHash )
+ {
+ if ( copy->iJavaHash )
+ {
+ delete copy->iJavaHash;
+ copy->iJavaHash = NULL;
+ }
+ copy->iJavaHash = iJavaHash->Alloc();
+ }
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUpdateDeviceInfo::CSConUpdateDeviceInfo()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUpdateDeviceInfo::CSConUpdateDeviceInfo() :
+ iInstallSupp(EFalse), iUninstallSupp(EFalse),
+ iInstParamsSupp(EFalse), iInstAppsSupp(EFalse),
+ iDataOwnersSupp(EFalse), iSetBURModeSupp(EFalse),
+ iGetSizeSupp(EFalse), iReqDataSupp(EFalse),
+ iSupplyDataSupp(EFalse), iRebootSupp(EFalse),
+ iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUpdateDeviceInfo::~CSConUpdateDeviceInfo()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUpdateDeviceInfo::~CSConUpdateDeviceInfo()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUpdateDeviceInfo::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUpdateDeviceInfo* CSConUpdateDeviceInfo::CopyL()
+ {
+ CSConUpdateDeviceInfo* copy = new (ELeave) CSConUpdateDeviceInfo();
+ copy->iVersion.Copy( iVersion );
+ copy->iInstallSupp = iInstallSupp;
+ copy->iUninstallSupp = iUninstallSupp;
+ copy->iInstParamsSupp = iInstParamsSupp;
+ copy->iInstAppsSupp = iInstAppsSupp;
+ copy->iDataOwnersSupp = iDataOwnersSupp;
+ copy->iSetBURModeSupp = iSetBURModeSupp;
+ copy->iGetSizeSupp = iGetSizeSupp;
+ copy->iReqDataSupp = iReqDataSupp;
+ copy->iSupplyDataSupp = iSupplyDataSupp;
+ copy->iMaxObjectSize = iMaxObjectSize;
+ copy->iRebootSupp = iRebootSupp;
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+CSConInstApp::~CSConInstApp()
+ {
+ delete iWidgetBundleId;
+ }
+// -----------------------------------------------------------------------------
+// CSConInstApp::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConInstApp* CSConInstApp::CopyL()
+ {
+ CSConInstApp* copy = new (ELeave) CSConInstApp();
+
+ copy->iName.Copy( iName );
+ copy->iParentName.Copy( iParentName );
+ copy->iVendor.Copy( iVendor );
+ copy->iVersion.Copy( iVersion );
+ copy->iSize = iSize;
+ copy->iType = iType;
+ copy->iUid = iUid;
+ if ( iWidgetBundleId )
+ {
+ copy->iWidgetBundleId = iWidgetBundleId->AllocL();
+ }
+ else
+ {
+ copy->iWidgetBundleId = NULL;
+ }
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListInstApps::CSConListInstApps()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListInstApps::CSConListInstApps() : iComplete( EFalse ), iProgress( 0 )
+ {
+ //Initialize iDriveList with zeros
+ iDriveList.Fill( '\x0' );
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListInstApps::~CSConListInstApps()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListInstApps::~CSConListInstApps()
+ {
+ iApps.ResetAndDestroy();
+ iApps.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListInstApps::CopyL()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListInstApps* CSConListInstApps::CopyL()
+ {
+ CSConListInstApps* copy = new (ELeave) CSConListInstApps();
+ copy->iAllApps = iAllApps;
+ copy->iDriveList = iDriveList;
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ for( TInt i = 0; i < iApps.Count(); i++ )
+ {
+ copy->iApps.Append( iApps[i]->CopyL() );
+ }
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConFile::CSConFile
+//
+// -----------------------------------------------------------------------------
+//
+CSConFile::CSConFile()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConFile::~CSConFile
+//
+// -----------------------------------------------------------------------------
+//
+CSConFile::~CSConFile()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CSConFile::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConFile* CSConFile::CopyL()
+ {
+ CSConFile* copy = new (ELeave) CSConFile();
+
+ copy->iPath.Copy( iPath );
+ copy->iModified.Copy( iModified );
+ copy->iSize = iSize;
+ copy->iUserPerm = iUserPerm;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConInstall::CSConInstall()
+//
+// -----------------------------------------------------------------------------
+//
+CSConInstall::CSConInstall() : iMode( EUnknown ), iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConInstall::~CSConInstall()
+//
+// -----------------------------------------------------------------------------
+//
+CSConInstall::~CSConInstall()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConInstall::CopyL()
+//
+// -----------------------------------------------------------------------------
+//
+CSConInstall* CSConInstall::CopyL()
+ {
+ CSConInstall* copy = new (ELeave) CSConInstall();
+ copy->iPath = iPath;
+ copy->iMode = iMode;
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUninstall::CSConUninstall()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUninstall::CSConUninstall() : iMode( EUnknown ), iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUninstall::~CSConUninstall()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUninstall::~CSConUninstall()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConUninstall::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConUninstall* CSConUninstall::CopyL()
+ {
+ CSConUninstall* copy = new (ELeave) CSConUninstall();
+ copy->iName = iName;
+ copy->iVendor = iVendor;
+ copy->iUid = iUid;
+ copy->iMode = iMode;
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListDataOwners::CSConListDataOwners()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListDataOwners::CSConListDataOwners() : iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListDataOwners::~CSConListDataOwners()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListDataOwners::~CSConListDataOwners()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListDataOwners::CopyL()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListDataOwners* CSConListDataOwners::CopyL()
+ {
+ CSConListDataOwners* copy = new (ELeave) CSConListDataOwners();
+ CleanupStack::PushL( copy );
+ for( TInt i = 0; i < iDataOwners.Count(); i++ )
+ {
+ copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
+ }
+ CleanupStack::Pop( copy );
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListDataOwners::DeleteDataOwners()
+//
+// -----------------------------------------------------------------------------
+//
+void CSConListDataOwners::DeleteDataOwners()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CCSConSetBURMode::CSConSetBURMode()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSetBURMode::CSConSetBURMode() : iComplete( EFalse ), iProgress( 0 )
+ {
+ //Initialize iDriveList with zeros
+ iDriveList.Fill( '\x0' );
+ }
+
+// -----------------------------------------------------------------------------
+// CSConSetBURMode::~CSConSetBURMode()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSetBURMode::~CSConSetBURMode()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConSetBURMode::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSetBURMode* CSConSetBURMode::CopyL()
+ {
+ CSConSetBURMode* copy = new (ELeave) CSConSetBURMode();
+ copy->iDriveList.Copy( iDriveList );
+ copy->iPartialType = iPartialType;
+ copy->iIncType = iIncType;
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataSize::CSConGetDataSize()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataSize::CSConGetDataSize() : iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataSize::~CSConGetDataSize()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataSize::~CSConGetDataSize()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataSize::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataSize* CSConGetDataSize::CopyL()
+ {
+ CSConGetDataSize* copy = new (ELeave) CSConGetDataSize();
+ CleanupStack::PushL( copy );
+ for( TInt i = 0; i < iDataOwners.Count(); i++ )
+ {
+ copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
+ }
+ CleanupStack::Pop( copy );
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataSize::DeleteDataOwners()
+//
+// -----------------------------------------------------------------------------
+//
+void CSConGetDataSize::DeleteDataOwners()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListPublicFiles::CSConListPublicFiles()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListPublicFiles::CSConListPublicFiles() : iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListPublicFiles::~CSConListPublicFiles()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListPublicFiles::~CSConListPublicFiles()
+ {
+ iFiles.ResetAndDestroy();
+ iFiles.Close();
+
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConListPublicFiles::CopyL()
+//
+// -----------------------------------------------------------------------------
+//
+CSConListPublicFiles* CSConListPublicFiles::CopyL()
+ {
+ CSConListPublicFiles* copy = new (ELeave) CSConListPublicFiles();
+ CleanupStack::PushL( copy );
+ for( TInt i = 0; i < iFiles.Count(); i++ )
+ {
+ copy->iFiles.Append( iFiles[i]->CopyL() );
+ }
+
+ for( TInt j = 0; j < iDataOwners.Count(); j++ )
+ {
+ copy->iDataOwners.Append( iDataOwners[j]->CopyL() );
+ }
+ CleanupStack::Pop( copy );
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConRequestData::CSConRequestData()
+//
+// -----------------------------------------------------------------------------
+//
+CSConRequestData::CSConRequestData() : iDataOwner( NULL ), iBackupData( NULL ),
+ iMoreData( EFalse ), iComplete( EFalse ), iProgress( 0 )
+ {
+ iDataOwner = new CSConDataOwner();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConRequestData::~CSConRequestData()
+//
+// -----------------------------------------------------------------------------
+//
+CSConRequestData::~CSConRequestData()
+ {
+ if ( iDataOwner )
+ {
+ delete iDataOwner;
+ iDataOwner = NULL;
+ }
+
+ if ( iBackupData )
+ {
+ delete iBackupData;
+ iBackupData = NULL;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConRequestData::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConRequestData* CSConRequestData::CopyL()
+ {
+ CSConRequestData* copy = new (ELeave) CSConRequestData();
+
+ if ( iDataOwner )
+ {
+ if ( copy->iDataOwner )
+ {
+ delete copy->iDataOwner;
+ copy->iDataOwner = NULL;
+ }
+ copy->iDataOwner = iDataOwner->CopyL();
+ }
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ if ( iBackupData )
+ {
+ if ( copy->iBackupData )
+ {
+ delete copy->iBackupData;
+ copy->iBackupData = NULL;
+ }
+ copy->iBackupData = iBackupData->Alloc();
+ }
+
+ copy->iMoreData = iMoreData;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConRequestData::DeleteDataAndDataOwner()
+//
+// -----------------------------------------------------------------------------
+//
+void CSConRequestData::DeleteDataAndDataOwner()
+ {
+ if ( iDataOwner )
+ {
+ delete iDataOwner;
+ iDataOwner = NULL;
+ }
+
+ if ( iBackupData )
+ {
+ delete iBackupData;
+ iBackupData = NULL;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataOwnerStatus::CSConGetDataOwnerStatus()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataOwnerStatus::CSConGetDataOwnerStatus() : iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataOwnerStatus::~CSConGetDataOwnerStatus()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataOwnerStatus::~CSConGetDataOwnerStatus()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataOwnerStatus::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetDataOwnerStatus* CSConGetDataOwnerStatus::CopyL()
+ {
+ CSConGetDataOwnerStatus* copy = new (ELeave) CSConGetDataOwnerStatus();
+ CleanupStack::PushL( copy );
+ for( TInt i = 0; i < iDataOwners.Count(); i++ )
+ {
+ copy->iDataOwners.Append( iDataOwners[i]->CopyL() );
+ }
+ CleanupStack::Pop( copy );
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetDataOwnerStatus::DeleteDataOwners()
+//
+// -----------------------------------------------------------------------------
+//
+void CSConGetDataOwnerStatus::DeleteDataOwners()
+ {
+ iDataOwners.ResetAndDestroy();
+ iDataOwners.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConSupplyData::CSConSupplyData()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSupplyData::CSConSupplyData() : iDataOwner( NULL ), iRestoreData( NULL ),
+ iComplete( EFalse ), iProgress( 0 )
+ {
+ iDataOwner = new CSConDataOwner();
+ }
+
+// -----------------------------------------------------------------------------
+// CSConSupplyData::~CSConSupplyData()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSupplyData::~CSConSupplyData()
+ {
+ if ( iDataOwner )
+ {
+ delete iDataOwner;
+ iDataOwner = NULL;
+ }
+
+ if ( iRestoreData )
+ {
+ delete iRestoreData;
+ iRestoreData = NULL;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConSupplyData::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConSupplyData* CSConSupplyData::CopyL()
+ {
+ CSConSupplyData* copy = new (ELeave) CSConSupplyData();
+ CleanupStack::PushL( copy );
+
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ if ( iDataOwner )
+ {
+ if ( copy->iDataOwner )
+ {
+ delete copy->iDataOwner;
+ copy->iDataOwner = NULL;
+ }
+
+ copy->iDataOwner = iDataOwner->CopyL();
+ }
+ CleanupStack::Pop( copy );
+
+ if ( iRestoreData )
+ {
+ if ( copy->iRestoreData )
+ {
+ delete copy->iRestoreData;
+ copy->iRestoreData = NULL;
+ }
+
+ copy->iRestoreData = iRestoreData->Alloc();
+ }
+
+ copy->iMoreData = iMoreData;
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetMetadata::CSConGetMetadata()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetMetadata::CSConGetMetadata() : iData( NULL ),
+ iMoreData( EFalse ), iComplete( EFalse ), iProgress( 0 )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetMetadata::~CSConGetMetadata()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetMetadata::~CSConGetMetadata()
+ {
+ if ( iData )
+ {
+ delete iData;
+ iData = NULL;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConGetMetadata::Copy()
+//
+// -----------------------------------------------------------------------------
+//
+CSConGetMetadata* CSConGetMetadata::CopyL()
+ {
+ CSConGetMetadata* copy = new (ELeave) CSConGetMetadata();
+
+ copy->iFilename = iFilename;
+
+ if ( iData )
+ {
+ if ( copy->iData )
+ {
+ delete copy->iData;
+ copy->iData = NULL;
+ }
+
+ copy->iData = iData->Alloc();
+ }
+
+ copy->iMoreData = iMoreData;
+ copy->iComplete = iComplete;
+ copy->iProgress = iProgress;
+
+ return copy;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CSConTask::NewL( TSConMethodName aMethod )
+//
+// -----------------------------------------------------------------------------
+//
+CSConTask* CSConTask::NewL( TSConMethodName aMethod )
+ {
+ CSConTask* self = NewLC( aMethod );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::NewLC( TSConMethodName aMethod )
+//
+// -----------------------------------------------------------------------------
+//
+CSConTask* CSConTask::NewLC( TSConMethodName aMethod )
+ {
+ CSConTask* self = new (ELeave) CSConTask();
+ CleanupStack::PushL( self );
+ self->ConstructL( aMethod );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::ConstructL( TSConMethodName aMethod )
+// Initializes member data
+// -----------------------------------------------------------------------------
+//
+void CSConTask::ConstructL( TSConMethodName aMethod )
+ {
+ iMethod = aMethod;
+
+ switch( aMethod )
+ {
+ case ECancel :
+ break;
+ case EGetDataOwnerStatus :
+ iGetDataOwnerParams = new (ELeave) CSConGetDataOwnerStatus();
+ break;
+ case EGetDataSize :
+ iGetDataSizeParams = new (ELeave) CSConGetDataSize();
+ break;
+ case EGetStatus :
+ iGetStatusParams = new (ELeave) CSConGetStatus();
+ break;
+ case EInstall :
+ iInstallParams = new (ELeave) CSConInstall();
+ break;
+ case EListDataOwners :
+ iListDataOwnersParams = new (ELeave) CSConListDataOwners();
+ break;
+ case EListInstalledApps :
+ iListAppsParams = new (ELeave) CSConListInstApps();
+ break;
+ case EListPublicFiles :
+ iPubFilesParams = new (ELeave) CSConListPublicFiles();
+ break;
+ case ERequestData :
+ iRequestDataParams = new (ELeave) CSConRequestData();
+ break;
+ case ESetBURMode :
+ iBURModeParams = new (ELeave) CSConSetBURMode();
+ break;
+ case ESetInstParams :
+ break;
+ case ESupplyData :
+ iSupplyDataParams = new (ELeave) CSConSupplyData();
+ break;
+ case EUninstall :
+ iUninstallParams = new (ELeave) CSConUninstall();
+ break;
+ case EUpdateDeviceInfo :
+ iDevInfoParams = new (ELeave) CSConUpdateDeviceInfo();
+ break;
+ case EReboot :
+ iRebootParams = new (ELeave) CSConReboot();
+ break;
+ case EGetMetadata :
+ iGetMetadataParams = new (ELeave) CSConGetMetadata();
+ break;
+ default :
+ break;
+ }
+ }
+// -----------------------------------------------------------------------------
+// CSConTask::CSConTask()
+//
+// -----------------------------------------------------------------------------
+//
+CSConTask::CSConTask()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::~CSConTask()
+//
+// -----------------------------------------------------------------------------
+//
+CSConTask::~CSConTask()
+ {
+ delete iDevInfoParams;
+ delete iListAppsParams;
+ delete iGetStatusParams;
+ delete iInstallParams;
+ delete iUninstallParams;
+ delete iBURModeParams;
+ delete iGetDataSizeParams;
+ delete iRequestDataParams;
+ delete iGetDataOwnerParams;
+ delete iSupplyDataParams;
+ delete iPubFilesParams;
+ delete iListDataOwnersParams;
+ delete iRebootParams;
+ delete iGetMetadataParams;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::GetServiceId() const
+//
+// -----------------------------------------------------------------------------
+//
+TSConMethodName CSConTask::GetServiceId() const
+ {
+ return iMethod;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::Copy() const
+//
+// -----------------------------------------------------------------------------
+//
+CSConTask* CSConTask::CopyL() const
+ {
+ CSConTask* copy = new (ELeave) CSConTask();
+ copy->iMethod = iMethod;
+
+ if ( iDevInfoParams )
+ {
+ copy->iDevInfoParams = iDevInfoParams->CopyL();
+ }
+ if ( iListAppsParams )
+ {
+ copy->iListAppsParams = iListAppsParams->CopyL();
+ }
+ if ( iGetStatusParams )
+ {
+
+ }
+ if ( iInstallParams )
+ {
+ copy->iInstallParams = iInstallParams->CopyL();
+ }
+ if ( iUninstallParams )
+ {
+ copy->iUninstallParams = iUninstallParams->CopyL();
+ }
+ if ( iBURModeParams )
+ {
+ copy->iBURModeParams = iBURModeParams->CopyL();
+ }
+ if ( iGetDataSizeParams )
+ {
+ copy->iGetDataSizeParams = iGetDataSizeParams->CopyL();
+ }
+ if ( iRequestDataParams )
+ {
+ copy->iRequestDataParams = iRequestDataParams->CopyL();
+ }
+ if ( iGetDataOwnerParams )
+ {
+ copy->iGetDataOwnerParams = iGetDataOwnerParams->CopyL();
+ }
+ if ( iSupplyDataParams )
+ {
+ copy->iSupplyDataParams = iSupplyDataParams->CopyL();
+ }
+ if ( iPubFilesParams )
+ {
+ copy->iPubFilesParams = iPubFilesParams->CopyL();
+ }
+ if ( iListDataOwnersParams )
+ {
+ copy->iListDataOwnersParams = iListDataOwnersParams->CopyL();
+ }
+ if ( iRebootParams )
+ {
+ copy->iRebootParams = iRebootParams->CopyL();
+ }
+ if ( iGetMetadataParams )
+ {
+ copy->iGetMetadataParams = iGetMetadataParams->CopyL();
+ }
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::GetComplete()
+//
+// -----------------------------------------------------------------------------
+//
+TBool CSConTask::GetComplete()
+ {
+ TBool complete( EFalse );
+
+ switch( iMethod )
+ {
+ case EInstall :
+ complete = this->iInstallParams->iComplete;
+ break;
+ case EUninstall :
+ complete = this->iUninstallParams->iComplete;
+ break;
+ case EListInstalledApps :
+ complete = this->iListAppsParams->iComplete;
+ break;
+ case ESetInstParams :
+ break;
+ case ESetBURMode :
+ complete = this->iBURModeParams->iComplete;
+ break;
+ case EListPublicFiles :
+ complete = this->iPubFilesParams->iComplete;
+ break;
+ case EListDataOwners :
+ complete = this->iListDataOwnersParams->iComplete;
+ break;
+ case EGetDataSize :
+ complete = this->iGetDataSizeParams->iComplete;
+ break;
+ case EReboot :
+ complete = this->iRebootParams->iComplete;
+ break;
+ case ERequestData :
+ //If task is partially completed,
+ //it can be removed from the queue
+ if ( this->iRequestDataParams->iProgress == KSConTaskPartiallyCompleted )
+ {
+ complete = ETrue;
+ }
+ else
+ {
+ complete = this->iRequestDataParams->iComplete;
+ }
+
+ break;
+ case EGetDataOwnerStatus :
+ complete = this->iGetDataOwnerParams->iComplete;
+ break;
+ case ESupplyData :
+ //If task is partially completed,
+ //it can be removed from the queue
+ if ( this->iSupplyDataParams->iProgress == KSConTaskPartiallyCompleted )
+ {
+ complete = ETrue;
+ }
+ else
+ {
+ complete = this->iSupplyDataParams->iComplete;
+ }
+
+ break;
+ case EGetMetadata :
+ complete = this->iGetMetadataParams->iComplete;
+ break;
+ default :
+ break;
+ }
+
+ return complete;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::SetCompleteValue( TBool aValue )
+//
+// -----------------------------------------------------------------------------
+//
+void CSConTask::SetCompleteValue( TBool aValue )
+ {
+ switch( iMethod )
+ {
+ case EInstall :
+ this->iInstallParams->iComplete = aValue;
+ break;
+ case EUninstall :
+ this->iUninstallParams->iComplete = aValue;
+ break;
+ case EListInstalledApps :
+ this->iListAppsParams->iComplete = aValue;
+ break;
+ case ESetInstParams :
+ this->iInstallParams->iComplete = aValue;
+ break;
+ case ESetBURMode :
+ this->iBURModeParams->iComplete = aValue;
+ break;
+ case EListPublicFiles :
+ this->iPubFilesParams->iComplete = aValue;
+ break;
+ case EListDataOwners :
+ this->iListDataOwnersParams->iComplete = aValue;
+ break;
+ case EGetDataSize :
+ this->iGetDataSizeParams->iComplete = aValue;
+ break;
+ case EReboot :
+ this->iRebootParams->iComplete = aValue;
+ break;
+ case ERequestData :
+ this->iRequestDataParams->iComplete = aValue;
+ break;
+ case EGetDataOwnerStatus :
+ this->iGetDataOwnerParams->iComplete = aValue;
+ break;
+ case ESupplyData :
+ this->iSupplyDataParams->iComplete = aValue;
+ break;
+ case EGetMetadata :
+ this->iGetMetadataParams->iComplete = aValue;
+ break;
+ default:
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::GetCompleteValue()
+//
+// -----------------------------------------------------------------------------
+//
+TBool CSConTask::GetCompleteValue()
+ {
+ TBool complete( EFalse );
+
+ switch( iMethod )
+ {
+ case EInstall :
+ complete = this->iInstallParams->iComplete;
+ break;
+ case EUninstall :
+ complete = this->iUninstallParams->iComplete;
+ break;
+ case EListInstalledApps :
+ complete = this->iListAppsParams->iComplete;
+ break;
+ case ESetInstParams :
+ complete = this->iInstallParams->iComplete;
+ break;
+ case ESetBURMode :
+ complete = this->iBURModeParams->iComplete;
+ break;
+ case EListPublicFiles :
+ complete = this->iPubFilesParams->iComplete;
+ break;
+ case EListDataOwners :
+ complete = this->iListDataOwnersParams->iComplete;
+ break;
+ case EGetDataSize :
+ complete = this->iGetDataSizeParams->iComplete;
+ break;
+ case EReboot :
+ complete = this->iRebootParams->iComplete;
+ break;
+ case ERequestData :
+ if ( this->iRequestDataParams->iProgress != KSConTaskPartiallyCompleted )
+ {
+ complete = this->iRequestDataParams->iComplete;
+ }
+ else
+ {
+ complete = ETrue;
+ }
+
+ break;
+ case EGetDataOwnerStatus :
+ complete = this->iGetDataOwnerParams->iComplete;
+ break;
+ case ESupplyData :
+ if ( this->iSupplyDataParams->iProgress != KSConTaskPartiallyCompleted )
+ {
+ complete = this->iSupplyDataParams->iComplete;
+ }
+ else
+ {
+ complete = ETrue;
+ }
+ break;
+ case EGetMetadata :
+ complete = this->iGetMetadataParams->iComplete;
+ break;
+ default:
+ break;
+ }
+ return complete;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTask::SetProgressValue( TInt aValue )
+//
+// -----------------------------------------------------------------------------
+//
+void CSConTask::SetProgressValue( TInt aValue )
+ {
+ switch( iMethod )
+ {
+ case EInstall :
+ this->iInstallParams->iProgress = aValue;
+ break;
+ case EUninstall :
+ this->iUninstallParams->iProgress = aValue;
+ break;
+ case EListInstalledApps :
+ this->iListAppsParams->iProgress = aValue;
+ break;
+ case ESetInstParams :
+ this->iInstallParams->iProgress = aValue;
+ break;
+ case ESetBURMode :
+ this->iBURModeParams->iProgress = aValue;
+ break;
+ case EListPublicFiles :
+ this->iPubFilesParams->iProgress = aValue;
+ break;
+ case EListDataOwners :
+ this->iListDataOwnersParams->iProgress = aValue;
+ break;
+ case EGetDataSize :
+ this->iGetDataSizeParams->iProgress = aValue;
+ break;
+ case EReboot :
+ this->iRebootParams->iProgress = aValue;
+ break;
+ case ERequestData :
+ this->iRequestDataParams->iProgress = aValue;
+ break;
+ case EGetDataOwnerStatus :
+ this->iGetDataOwnerParams->iProgress = aValue;
+ break;
+ case ESupplyData :
+ this->iSupplyDataParams->iProgress = aValue;
+ break;
+ case EGetMetadata :
+ this->iGetMetadataParams->iProgress = aValue;
+ break;
+ default:
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::CSConTaskReply()
+//
+// -----------------------------------------------------------------------------
+//
+CSConTaskReply::CSConTaskReply()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::CSConTaskReply( TSConMethodName aMethod )
+//
+// -----------------------------------------------------------------------------
+//
+CSConTaskReply::CSConTaskReply( TSConMethodName aMethod )
+ {
+ iMethod = aMethod;
+ switch( aMethod )
+ {
+ case ECancel :
+ break;
+ case EGetDataOwnerStatus :
+ iGetDataOwnerParams = new CSConGetDataOwnerStatus();
+ break;
+ case EGetDataSize :
+ iGetDataSizeParams = new CSConGetDataSize();
+ break;
+ case EGetStatus :
+ iGetStatusParams = new CSConGetStatus();
+ break;
+ case EInstall :
+ iInstallParams = new CSConInstall();
+ break;
+ case EListDataOwners :
+ iListDataOwnersParams = new CSConListDataOwners();
+ break;
+ case EListInstalledApps :
+ iListAppsParams = new CSConListInstApps();
+ break;
+ case EListPublicFiles :
+ iPubFilesParams = new CSConListPublicFiles();
+ break;
+ case ERequestData :
+ iRequestDataParams = new CSConRequestData();
+ break;
+ case ESetBURMode :
+ iBURModeParams = new CSConSetBURMode();
+ break;
+ case ESetInstParams :
+ break;
+ case ESupplyData :
+ iSupplyDataParams = new CSConSupplyData();
+ break;
+ case EUninstall :
+ iUninstallParams = new CSConUninstall();
+ break;
+ case EUpdateDeviceInfo :
+ iDevInfoParams = new CSConUpdateDeviceInfo();
+ break;
+ case EReboot :
+ iRebootParams = new CSConReboot();
+ break;
+ case EGetMetadata :
+ iGetMetadataParams = new CSConGetMetadata();
+ break;
+ default :
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::~CSConTaskReply()
+//
+// -----------------------------------------------------------------------------
+//
+CSConTaskReply::~CSConTaskReply()
+ {
+ delete iDevInfoParams;
+ delete iListAppsParams;
+ delete iGetStatusParams;
+ delete iInstallParams;
+ delete iUninstallParams;
+ delete iBURModeParams;
+ delete iGetDataSizeParams;
+ delete iRequestDataParams;
+ delete iGetDataOwnerParams;
+ delete iSupplyDataParams;
+ delete iPubFilesParams;
+ delete iListDataOwnersParams;
+ delete iRebootParams;
+ delete iGetMetadataParams;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::Initialize( const CSConTask& aTask )
+//
+// -----------------------------------------------------------------------------
+//
+void CSConTaskReply::InitializeL( const CSConTask& aTask )
+ {
+ iTaskId = aTask.iTaskId;
+ iMethod = aTask.iMethod;
+
+ if ( iMethod == EInstall )
+ {
+ if ( iInstallParams )
+ {
+ delete iInstallParams;
+ iInstallParams = NULL;
+ }
+ iInstallParams = aTask.iInstallParams->CopyL();
+ }
+ else if ( iMethod == EListInstalledApps )
+ {
+ if ( iListAppsParams )
+ {
+ delete iListAppsParams;
+ iListAppsParams = NULL;
+ }
+
+ iListAppsParams = aTask.iListAppsParams->CopyL();
+ }
+ else if ( iMethod == EUninstall )
+ {
+ if ( iUninstallParams )
+ {
+ delete iUninstallParams;
+ iUninstallParams = NULL;
+ }
+
+ iUninstallParams = aTask.iUninstallParams->CopyL();
+ }
+ else if ( iMethod == ESetBURMode )
+ {
+ if ( iBURModeParams )
+ {
+ delete iBURModeParams;
+ iBURModeParams = NULL;
+ }
+
+ iBURModeParams = aTask.iBURModeParams->CopyL();
+ }
+ else if ( iMethod == EListPublicFiles )
+ {
+ if ( iPubFilesParams )
+ {
+ delete iPubFilesParams;
+ iPubFilesParams = NULL;
+ }
+
+ iPubFilesParams = aTask.iPubFilesParams->CopyL();
+ }
+ else if ( iMethod == EListDataOwners )
+ {
+ if ( iListDataOwnersParams )
+ {
+ delete iListDataOwnersParams;
+ iListDataOwnersParams = NULL;
+ }
+
+ iListDataOwnersParams = aTask.iListDataOwnersParams->CopyL();
+ }
+ else if ( iMethod == EGetDataSize )
+ {
+ if ( iGetDataSizeParams )
+ {
+ delete iGetDataSizeParams;
+ iGetDataSizeParams = NULL;
+ }
+
+ iGetDataSizeParams = aTask.iGetDataSizeParams->CopyL();
+ }
+ else if ( iMethod == EReboot )
+ {
+ if ( iRebootParams )
+ {
+ delete iRebootParams;
+ iRebootParams = NULL;
+ }
+ }
+ else if ( iMethod == ERequestData )
+ {
+ if ( iRequestDataParams )
+ {
+ delete iRequestDataParams;
+ iRequestDataParams = NULL;
+ }
+
+ iRequestDataParams = aTask.iRequestDataParams->CopyL();
+ }
+ else if ( iMethod == EGetDataOwnerStatus )
+ {
+ if ( iGetDataOwnerParams )
+ {
+ delete iGetDataOwnerParams;
+ iGetDataOwnerParams = NULL;
+ }
+
+ iGetDataOwnerParams = aTask.iGetDataOwnerParams->CopyL();
+ }
+ else if ( iMethod == ESupplyData )
+ {
+ if ( iSupplyDataParams )
+ {
+ delete iSupplyDataParams;
+ iSupplyDataParams = NULL;
+ }
+
+ iSupplyDataParams = aTask.iSupplyDataParams->CopyL();
+ }
+ else if ( iMethod == EGetMetadata )
+ {
+ if ( iGetMetadataParams )
+ {
+ delete iGetMetadataParams;
+ iGetMetadataParams = NULL;
+ }
+
+ iGetMetadataParams = aTask.iGetMetadataParams->CopyL();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::Initialize( TSConMethodName aMethod,
+// TInt aProgress, TBool aComplete )
+//
+// -----------------------------------------------------------------------------
+//
+void CSConTaskReply::InitializeL( TSConMethodName aMethod,
+ TInt aProgress, TBool aComplete )
+ {
+ iMethod = aMethod;
+ if ( aMethod == EUpdateDeviceInfo )
+ {
+ if ( !iDevInfoParams )
+ {
+ iDevInfoParams = new (ELeave) CSConUpdateDeviceInfo();
+ }
+
+ iDevInfoParams->iComplete = aComplete;
+ iDevInfoParams->iProgress = aProgress;
+ }
+ else if ( aMethod == EReboot )
+ {
+ if ( !iRebootParams )
+ {
+ iRebootParams = new (ELeave) CSConReboot();
+ }
+
+ iRebootParams->iComplete = aComplete;
+ iRebootParams->iProgress = aProgress;
+ }
+ else if ( aMethod == EGetMetadata )
+ {
+ if ( !iGetMetadataParams )
+ {
+ iGetMetadataParams = new (ELeave) CSConGetMetadata();
+ }
+
+ iGetMetadataParams->iComplete = aComplete;
+ iGetMetadataParams->iProgress = aProgress;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::CopyAndFree()
+//
+// -----------------------------------------------------------------------------
+//
+CSConTaskReply* CSConTaskReply::CopyAndFreeL()
+ {
+ CSConTaskReply* copy = new (ELeave) CSConTaskReply();
+ copy->iTaskId = iTaskId;
+ copy->iMethod = iMethod;
+
+ if ( iDevInfoParams )
+ {
+ copy->iDevInfoParams = iDevInfoParams->CopyL();
+
+ //free allocated memory
+ delete iDevInfoParams;
+ iDevInfoParams = NULL;
+ }
+ if ( iListAppsParams )
+ {
+ copy->iListAppsParams = iListAppsParams->CopyL();
+
+ //free allocated memory
+ delete iListAppsParams;
+ iListAppsParams = NULL;
+ }
+ if ( iInstallParams )
+ {
+ copy->iInstallParams = iInstallParams->CopyL();
+
+ //free allocated memory
+ delete iInstallParams;
+ iInstallParams = NULL;
+ }
+ if ( iUninstallParams )
+ {
+ copy->iUninstallParams = iUninstallParams->CopyL();
+
+ //free allocated memory
+ delete iUninstallParams;
+ iUninstallParams = NULL;
+ }
+ if ( iBURModeParams )
+ {
+ copy->iBURModeParams = iBURModeParams->CopyL();
+
+ //free allocated memory
+ delete iBURModeParams;
+ iBURModeParams = NULL;
+ }
+ if ( iGetDataSizeParams )
+ {
+ copy->iGetDataSizeParams = iGetDataSizeParams->CopyL();
+
+ //free allocated memory
+ delete iGetDataSizeParams;
+ iGetDataSizeParams = NULL;
+ }
+ if ( iRequestDataParams )
+ {
+ copy->iRequestDataParams = iRequestDataParams->CopyL();
+
+ //free allocated memory
+ delete iRequestDataParams;
+ iRequestDataParams = NULL;
+ }
+ if ( iGetDataOwnerParams )
+ {
+ copy->iGetDataOwnerParams = iGetDataOwnerParams->CopyL();
+
+ //free allocated memory
+ delete iGetDataOwnerParams;
+ iGetDataOwnerParams = NULL;
+ }
+ if ( iSupplyDataParams )
+ {
+ copy->iSupplyDataParams = iSupplyDataParams->CopyL();
+
+ //free allocated memory
+ delete iSupplyDataParams;
+ iSupplyDataParams = NULL;
+ }
+ if ( iPubFilesParams )
+ {
+ copy->iPubFilesParams = iPubFilesParams->CopyL();
+
+ //free allocated memory
+ delete iPubFilesParams;
+ iPubFilesParams = NULL;
+ }
+ if ( iListDataOwnersParams )
+ {
+ copy->iListDataOwnersParams = iListDataOwnersParams->CopyL();
+
+ //free allocated memory
+ delete iListDataOwnersParams;
+ iListDataOwnersParams = NULL;
+ }
+ if ( iRebootParams )
+ {
+ copy->iRebootParams = iRebootParams->CopyL();
+
+ //free allocated memory
+ delete iRebootParams;
+ iRebootParams = NULL;
+ }
+ if ( iGetMetadataParams )
+ {
+ copy->iGetMetadataParams = iGetMetadataParams->CopyL();
+
+ //free allocated memory
+ delete iGetMetadataParams;
+ iGetMetadataParams = NULL;
+ }
+
+ return copy;
+ }
+
+// -----------------------------------------------------------------------------
+// CSConTaskReply::CleanTaskData()
+//
+// -----------------------------------------------------------------------------
+//
+void CSConTaskReply::CleanTaskData()
+ {
+ switch( iMethod )
+ {
+ case EGetDataSize :
+ if ( iGetDataSizeParams )
+ {
+ this->iGetDataSizeParams->DeleteDataOwners();
+ }
+ break;
+ case EGetDataOwnerStatus :
+ if ( iGetDataOwnerParams )
+ {
+ this->iGetDataOwnerParams->DeleteDataOwners();
+ }
+ break;
+ case EListDataOwners :
+ if ( iListDataOwnersParams )
+ {
+ this->iListDataOwnersParams->DeleteDataOwners();
+ }
+ break;
+ case ERequestData :
+ if ( iRequestDataParams )
+ {
+ this->iRequestDataParams->DeleteDataAndDataOwner();
+ }
+ break;
+ default :
+ break;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CSConStatusReply::CSConStatusReply()
+//
+// -----------------------------------------------------------------------------
+//
+CSConStatusReply::CSConStatusReply() : iNoTasks( EFalse )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CSConStatusReply::~CSConStatusReply()
+//
+// -----------------------------------------------------------------------------
+//
+CSConStatusReply::~CSConStatusReply()
+ {
+ iTasks.ResetAndDestroy();
+ iTasks.Close();
+ };
+
+// End of file