filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpJavaData.cpp
branchRCL_3
changeset 21 65326cf895ed
parent 20 491b3ed49290
child 22 f5c50b8af68c
--- a/filemanager/src/fmbkupengine/src/CMMCScBkupStateArchiveOpJavaData.cpp	Tue Aug 31 15:06:05 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;
-    }
-
-
-
-
-
-
-
-
-