--- a/filemanager/bkupengine/src/CMMCScBkupStateArchiveOpSystemData.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +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: CMMCScBkupStateArchiveOpSystemData implementation
-*
-*
-*/
-
-#include "CMMCScBkupStateArchiveOpSystemData.h"
-
-// User includes
-#include "MMCScBkupLogger.h"
-#include "CMMCScBkupDataOwnerCollection.h"
-#include "CMMCScBkupDataOwnerInfo.h"
-#include "MMCScBkupSBEUtils.h"
-#include "CMMCScBkupArchive.h"
-#include "CMMCScBkupArchiveFooter.h"
-#include "CMMCScBkupIndexWithIdentifier.h"
-#include "MMMCScBkupArchiveDataInterface.h"
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData()
-//
-// C++ constructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData( MMMCScBkupDriver& aDriver )
-: CMMCScBkupStateOpAware( aDriver ), iIndexValueCurrent( -1 )
- {
- __LOG1("CMMCScBkupStateArchiveOpSystemData::CMMCScBkupStateArchiveOpSystemData() - 0x%08x", StateId().iUid );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
-//
-// Destructor.
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData::~CMMCScBkupStateArchiveOpSystemData()
- {
- Cancel();
- //
- delete iBackupTransferObject;
- delete iRestoreTransferObject;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NewL()
-//
-//
-// ---------------------------------------------------------------------------
-CMMCScBkupStateArchiveOpSystemData* CMMCScBkupStateArchiveOpSystemData::NewL( MMMCScBkupDriver& aDriver )
- {
- CMMCScBkupStateArchiveOpSystemData* self = new(ELeave) CMMCScBkupStateArchiveOpSystemData( aDriver );
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::StateId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::StateId() const
- {
- return KMMCScBkupStateIdArchiveOpSystemData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NextStateBackupId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateBackupId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId()
-//
-//
-// ---------------------------------------------------------------------------
-TMMCScBkupStateId CMMCScBkupStateArchiveOpSystemData::NextStateRestoreId( TBool /*aPartial*/ ) const
- {
- return KMMCScBkupStateIdArchiveOpJavaData;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformStateInitBackupL( TBool /*aPartial*/ )
- {
- __DEBUG_TESTING_SKIP_BACKUP_SYS_DATA;
-
- iBackupTransferObject = CMMCScBkupWriteDataTransferRequest< TPackageDataType >::NewL(
- Driver(),
- *this,
- EMMCScBkupOwnerDataTypeSystemData,
- EPackageTransferDerivedType,
- ESystemData
- );
- CompleteSelf();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL( TBool /*aPartial*/ )
- {
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - START" );
- __DEBUG_TESTING_SKIP_RESTORE_SYS_DATA;
-
- iRestoreTransferObject = CMMCScBkupReadDataTransferRequest< TPackageDataType >::NewL(
- Driver(),
- EMMCScBkupOwnerDataTypeSystemData,
- ESystemData
- );
-
- CompleteSelf();
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformStateInitRestoreL() - END" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- const TInt count = dataOwners.Count();
- //
- while ( ++iIndexValueCurrent < count )
- {
- CMMCScBkupDataOwnerInfo& owner = dataOwners.Owner( iIndexValueCurrent );
- //
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
- {
- // Request all the system data (on all supported drives) for this
- // particular data owner
- __ASSERT_ALWAYS( iBackupTransferObject->IsActive() == EFalse, User::Invariant() );
- iBackupTransferObject->RequestL( owner,
- iStatus,
- Driver().DrvParamsBase().DriveAndOperations() );
- SetActive();
- break; // while loop
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& indexBase = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
- const TInt count = index.Count();
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - START - %d data owners...", count );
- //
- if ( ++iIndexValueCurrent < count )
- {
- __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting system data index record [%03d/%03d]", iIndexValueCurrent + 1, count);
- const CMMCScBkupIndexEntry< TInt32 >& entry = index.At( iIndexValueCurrent );
- iSecureId = entry.Identifier();
-
- __LOG("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - getting sub-entries for index record...");
- const RArray< TMMCScBkupArchiveDriveAndVector >& subEntries = entry.Entries();
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - got %d sub-entries for index record", subEntries.Count());
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- for(TInt i=0; i<subEntries.Count(); i++)
- {
- const TMMCScBkupArchiveDriveAndVector& item = subEntries[i];
- __LOG4("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - subentry[%2d] = %c:\\ [Offset: %8d, Length: %d] ", i, item.iDrive + 'A', item.iVector.Offset(), item.iVector.Length() );
- }
-#endif
-
- // Get the associated data owner
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
-
- __LOG1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to supply system data for SID: 0x%08x", entry.Identifier() );
-
- // The owner in question should be a package type object.
- CMMCScBkupDataOwnerInfo& owner = dataOwners.OwnerL( entry.Identifier() );
-
- if ( owner.CompletionStatus( EMMCScBkupOwnerDataTypeSystemData ) == EFalse )
- {
- // The owner in question should be a package type object.
- const TSBDerivedType ownersDerivedType = owner.Owner().Identifier().DerivedTypeL();
- __ASSERT_ALWAYS( ownersDerivedType == EPackageDerivedType || ownersDerivedType == EPackageTransferDerivedType, User::Invariant() );
-
-#ifdef __MMCSCBKUPLOGGING_ENABLED__
- const TUid packageUid = MMCScBkupSBEUtils::PackageIdFromGenericL( owner.Owner().Identifier() );
- __LOG2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousStateStepRestoreL() - trying to restore SYSTEM DATA for SID: 0x%08x, packageUID: 0x%08x", entry.Identifier(), packageUid.iUid );
-#endif
-
- // Safety check
- __ASSERT_ALWAYS( iRestoreTransferObject->IsActive() == EFalse, User::Invariant() );
-
- // Request all the system data (on all supported drives) for this
- // particular data owner
- iRestoreTransferObject->RequestL( owner,
- iStatus,
- subEntries );
- SetActive();
- }
- else
- {
- CompleteSelf();
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOG1("CMMCScBkupStateArchiveOpSystemData::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( EMMCScBkupOwnerDataTypeSystemData, ETrue );
-
- __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupBackup() - **** - error: %d, SID: 0x%08x - system data skipped for DO", aError, owner.SecureId().iId );
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore()
-//
-//
-// ---------------------------------------------------------------------------
-TBool CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore( TBool /*aPartial*/, TInt aError )
- {
- (void) aError;
- __LOGFILE1("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d", aError );
-
- // If system data restore phase returns "not supported", let's treat it as
- // such an error, that other data types for this data owner are not
- // allowed to restore either.
-
- if( aError == KErrNotSupported || aError == KErrAlreadyExists )
- {
- CMMCScBkupDataOwnerCollection& dataOwners = Driver().DrvDataOwners();
- CMMCScBkupDataOwnerInfo* owner = NULL;
- TRAPD( err, owner = &dataOwners.OwnerL( iSecureId ) );
- if( err == KErrNone && owner )
- {
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeJavaData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePublicData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeSystemData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypeActiveData, ETrue );
- owner->SetCompletionStatus( EMMCScBkupOwnerDataTypePassiveData, ETrue );
-
- __LOGFILE2("CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousErrorCleanupRestore() - **** - error: %d, SID: 0x%08x - all data types skipped for DO", aError, owner->SecureId().iId );
- }
- }
-
- CompleteSelf();
- return ETrue;
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformAsynchronousCancellation()
- {
- if (iBackupTransferObject)
- {
- iBackupTransferObject->Cancel();
- }
- if (iRestoreTransferObject)
- {
- iRestoreTransferObject->Cancel();
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsBackupL( TBool /*aPartial*/ )
- {
- CMMCScBkupIndexBase& index = Driver().DrvArchive().Footer().IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- index.StoreL( Driver() );
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::PerformLastRightsRestoreL( TBool /*aPartial*/ )
- {
- Driver().DrvSecureBackupClient().AllSystemFilesRestored();
- }
-
-
-// ---------------------------------------------------------------------------
-// CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL()
-//
-//
-// ---------------------------------------------------------------------------
-void CMMCScBkupStateArchiveOpSystemData::AddIndexRecordL( CMMCScBkupArchiveFooter& aFooter, CMMCScBkupDataOwnerInfo& aDataOwner, const TMMCScBkupArchiveVector& aInfo, TDriveNumber aDrive )
- {
- CMMCScBkupIndexBase& indexBase = aFooter.IndexByType( EMMCScBkupOwnerDataTypeSystemData );
- CMMCScBkupIndexWithIdentifier< TInt32 >& index = static_cast< CMMCScBkupIndexWithIdentifier< TInt32 >& >( indexBase );
- index.AddIndexRecordL( aInfo, aDrive, aDataOwner.SecureId().iId );
- }
-
-
-
-
-
-
-
-
-
-
-
-