--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpJavaData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,548 +0,0 @@
-/*
-* Copyright (c) 2005 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: CMMCScBkupStateArchiveOpJavaData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpJavaData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexJavaData.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::CMMCScBkupStateArchiveOpJavaData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData::~CMMCScBkupStateArchiveOpJavaData()
- {
- Cancel();
- //
- delete iBackupTransferObjectMidlet;
- delete iBackupTransferObjectMidletData;
- delete iRestoreTransferObjectMidlet;
- delete iRestoreTransferObjectMidletData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpJavaData* CMMCScBkupStateArchiveOpJavaData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpJavaData* self = new(ELeave) CMMCScBkupStateArchiveOpJavaData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdGetDataOwnerStatuses;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpJavaData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpPassiveData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitBackupL() - START" );
- __DEBUG_TESTING_SKIP_BACKUP_JAV_DATA;
-
- iBackupTransferObjectMidlet = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypeJavaData,
- EJavaTransferDerivedType,
- EJavaMIDlet
- );
-
- iBackupTransferObjectMidletData = CMMCScBkupWriteDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypePassiveData,
- EJavaTransferDerivedType,
- EJavaMIDletData
- );
-
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - START" );
- __DEBUG_TESTING_SKIP_RESTORE_JAV_DATA;
-
-
- iRestoreTransferObjectMidlet = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypeJavaData,
- EJavaMIDlet
- );
-
- iRestoreTransferObjectMidletData = CMMCScBkupReadDataTransferRequest< TJavaTransferType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypePassiveData,
- EJavaMIDletData
- );
-
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformStateInitRestoreL() - END" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - START - iCurrentJavaState: %d", iCurrentJavaState );
-
- switch( iCurrentJavaState )
- {
- case EJavaStateIdle:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateIdle");
- BackupMidletL();
- break;
- case EJavaStateMidlet:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidlet");
- BackupMidletDataL();
- break;
- case EJavaStateMidletData:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - EJavaStateMidletData");
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- break;
- default:
- break;
- }
-
- __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepBackupL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - START - iCurrentJavaState: %d", iCurrentJavaState );
-
- switch( iCurrentJavaState )
- {
- case EJavaStateIdle:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateIdle");
- RestoreMidletL();
- break;
- case EJavaStateMidlet:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidlet");
- RestoreMidletDataL();
- break;
- case EJavaStateMidletData:
- __LOG("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - EJavaStateMidletData");
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- break;
- default:
- break;
- }
-
- __LOG2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousStateStepRestoreL() - END - iCurrentJavaState: %d, IsActive: %d", iCurrentJavaState, IsActive() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - error: %d", aError );
-
- // Reset state and move to next item. Treat the current (badly behaving) item
- // as completed/processed.
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- if ( iIndexValueCurrent < dataOwners.Count() )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- owner.SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
- iCurrentJavaState = EJavaStateIdle;
-
- __LOGFILE2("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - JAVA data skipped for DO", aError, owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- iCurrentJavaState = EJavaStateIdle;
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformAsynchronousCancellation()
- {
- if (iBackupTransferObjectMidlet)
- {
- iBackupTransferObjectMidlet->Cancel();
- }
- if (iBackupTransferObjectMidletData)
- {
- iBackupTransferObjectMidletData->Cancel();
- }
- if (iRestoreTransferObjectMidlet)
- {
- iRestoreTransferObjectMidlet->Cancel();
- }
- if (iRestoreTransferObjectMidletData)
- {
- iRestoreTransferObjectMidletData->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- index.StoreL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
- //
- TJavaTransferType type = EJavaMIDlet;
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( aDataOwner.Owner().Identifier() );
- //
- if ( iCurrentJavaState == EJavaStateMidlet )
- {
- __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDlet", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
- type = EJavaMIDlet;
- }
- else if ( iCurrentJavaState == EJavaStateMidletData )
- {
- __LOG4("CMMCScBkupStateArchiveOpJavaData::AddIndexRecordL() - hash: %S, aDrive: %c:, offset: %8d, length: %8d, type: EJavaMIDletData", hash, aDrive + 'A', aInfo.Offset(), aInfo.Length() );
- type = EJavaMIDletData;
- }
- //
- index.AddIndexRecordL( aInfo, *hash, aDrive, type );
- CleanupStack::PopAndDestroy( hash );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::BackupMidletL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- //
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
- __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletL() - trying to get midlet for hash: %S", hash );
- CleanupStack::PopAndDestroy( hash );
-#endif
-
- iBackupTransferObjectMidlet->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- iCurrentJavaState = EJavaStateMidlet;
-
- break; // while loop
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL()
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
-
- // We only need to request the midlet's passive data if it has a non-zero
- // size.
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- if ( owner.OperationalSize( EMMCScBkupOwnerDataTypePassiveData ) > 0 )
- {
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- HBufC* hash = MMCScBkupSBEUtils::JavaHashFromGenericLC( owner.Owner().Identifier() );
- __LOG1("CMMCScBkupStateArchiveOpJavaData::BackupMidletDataL() - trying to get midlet data for hash: %S", hash );
- CleanupStack::PopAndDestroy( hash );
-#endif
-
- iBackupTransferObjectMidletData->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidletData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::RestoreMidletL()
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
-
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - START - %d data owners...", count );
- //
- if ( ++iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
- const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
-
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to get data owner info for hash: %S", &entry.Hash() );
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeJavaData ) == EFalse )
- {
- // Request all the java data (on all supported drives) for this
- // particular data owner
- __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletL() - trying to restore JAVA MIDLET for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletInfo().Offset(), entry.MidletInfo().Length() );
-
- // Build restore entry list (will only contain one entry - the
- // reader API forces an array interface on us, so let's do ou best
- // to please it...)
- const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletInfo() );
- iRestoreEntries.Reset();
- iRestoreEntries.AppendL( driveAndVector );
-
- // Start the asynchronous restore op...
- iRestoreTransferObjectMidlet->RequestL( owner,
- iStatus,
- iRestoreEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidlet;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL()
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeJavaData );
- CMMCScBkupIndexJavaData& index = static_cast< CMMCScBkupIndexJavaData& >( indexBase );
-
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - START - %d data owners...", count );
- //
- if ( iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - getting java data index record [%03d/%03d]", iIndexValueCurrent, count);
- const CMMCScBkupIndexJavaDataEntry& entry = index.At( iIndexValueCurrent );
-
- if ( entry.HasMidletDataInfo() )
- {
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to get data owner info for hash: %S", &entry.Hash() );
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Hash() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypePassiveData ) == EFalse )
- {
- // Request all the java data (on all supported drives) for this
- // particular data owner
- __LOG3("CMMCScBkupStateArchiveOpJavaData::RestoreMidletDataL() - trying to restore JAVA MIDLET DATA for hash: %S [offset: %8d, length: %8d]", &entry.Hash(), entry.MidletDataInfo().Offset(), entry.MidletDataInfo().Length() );
-
- // Build restore entry list (will only contain one entry - the
- // reader API forces an array interface on us, so let's do ou best
- // to please it...)
- const TMMCScBkupArchiveDriveAndVector driveAndVector( entry.Drive(), entry.MidletDataInfo() );
- iRestoreEntries.Reset();
- iRestoreEntries.AppendL( driveAndVector );
-
- // Start the asynchronous restore op...
- iRestoreTransferObjectMidletData->RequestL( owner,
- iStatus,
- iRestoreEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
- }
- else
- {
- CompleteSelf();
- }
-
- iCurrentJavaState = EJavaStateMidletData;
- }
-
-
-
-
-
-
-
-
-