connectivitymodules/SeCon/common/conmltask/src/sconconmltask.cpp
branchRCL_3
changeset 20 4a793f564d72
--- /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