diff -r 491b3ed49290 -r 65326cf895ed filemanager/src/fmbkupengine/src/RMMCScBkupProgressSizer.cpp --- a/filemanager/src/fmbkupengine/src/RMMCScBkupProgressSizer.cpp Tue Aug 31 15:06:05 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -/* -* Copyright (c) 2005-2008 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: RMMCScBkupProgressSizer implementation -* -* -*/ - -#include "RMMCScBkupProgressSizer.h" - -// User includes -#include "MMCScBkupLogger.h" -#include "MMCScBkupSBEUtils.h" -#include "CMMCScBkupDataOwnerInfo.h" -#include "MMMCScBkupProgressObserver.h" -#include "CMMCScBkupDriveAndOperationTypeManager.h" - -// Constants -const TInt KMMCScBkupWeightingFactor = 10000; - - - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::RMMCScBkupProgressSizer() -// -// C++ constructor. -// --------------------------------------------------------------------------- -RMMCScBkupProgressSizer::RMMCScBkupProgressSizer( const CMMCScBkupDriveAndOperationTypeManager& aDriveAndOperationTypes ) -: iDriveAndOperationTypes( aDriveAndOperationTypes ), iDriveFilter( aDriveAndOperationTypes.DriveList() ) - { - } - - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::BackupTotalProgressValueL() -// -// Calculate the total amount of progress steps that a particular data owner -// requires. This method can only be called after all of the sizing info -// has been obtained from the SBE -// --------------------------------------------------------------------------- -TInt64 RMMCScBkupProgressSizer::BackupTotalProgressValueL( const CMMCScBkupDataOwnerInfo& aDataOwner ) - { - __LOG(" "); - __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - START - DO: 0x%08x", aDataOwner.SecureId().iId); - TInt64 totalStepCount = 0; - - ////////////////////////////////////////////////////////////////////// - // THESE ELEMENTS HAVE PSEUDO-PROGRESS - that is, the report a fixed - // number of progress nibbles per operation. For example: - // - // TYPE DRIVE PROGRESS - // ======================================= - // ACTIVE (C:) 1 x 2000 - // PASSIVE (C:) 1 x 2000 - // SYSTEM (C:, E:) 2 x 2000 - // JAVA (C:) 1 x 2000 - // PUBLIC (C: = 12k) 12 x 1024 - // ---------------------------------------- - // total 10000 + (12 x 1024) - // - ////////////////////////////////////////////////////////////////////// - - const CDataOwnerInfo& sbeDataOwner = aDataOwner.Owner(); - - // Passive data - if ( MMCScBkupSBEUtils::HasPassiveDataL( sbeDataOwner ) ) - { - const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypePassiveData ); - __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - passive - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount); - totalStepCount += ( opsCount * KMMCScBkupWeightingFactor ); - } - - // Active data - if ( MMCScBkupSBEUtils::HasActiveDataL( sbeDataOwner ) ) - { - const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeActiveData ); - __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - active - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount); - totalStepCount += ( opsCount * KMMCScBkupWeightingFactor ); - } - - // System data - if ( MMCScBkupSBEUtils::HasSystemDataL( sbeDataOwner ) ) - { - const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeSystemData ); - __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - system - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount); - totalStepCount += ( opsCount * KMMCScBkupWeightingFactor ); - } - - // Java data - if ( MMCScBkupSBEUtils::HasJavaDataL( sbeDataOwner ) ) - { - const TInt opsCount = NumberOfDriveOpsRequiredL( aDataOwner, EMMCScBkupOwnerDataTypeJavaData ); - __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - java - %d of progress (%d ops)", opsCount * KMMCScBkupWeightingFactor, opsCount); - totalStepCount += ( opsCount * KMMCScBkupWeightingFactor ); - } - - - /////////////////////////////////// - // PUBLIC REPORTS ACTUAL SIZING - /////////////////////////////////// - - // Public data - if ( MMCScBkupSBEUtils::HasPublicDataL( sbeDataOwner ) ) - { - const TInt64 size = AmountOfPublicDataToBeRestoredL( aDataOwner ); - __LOG1("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - public - %Ld of progress", size); - totalStepCount += size; - } - - // - __LOG2("RMMCScBkupProgressSizer::BackupTotalProgressValueL() - END - DO: 0x%08x, totalStepCount: %8Ld", aDataOwner.SecureId().iId, totalStepCount); - return totalStepCount; - } - - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL() -// -// -// --------------------------------------------------------------------------- -void RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL( MMMCScBkupProgressObserver& aProgressManager, TMMCScBkupOwnerDataType aType ) - { - switch( aType ) - { - case EMMCScBkupOwnerDataTypeSystemData: - case EMMCScBkupOwnerDataTypeActiveData: - case EMMCScBkupOwnerDataTypePassiveData: - case EMMCScBkupOwnerDataTypeJavaData: - __LOG2("RMMCScBkupProgressSizer::BackupReportFixedProgressForOpL() - aType: %d, amount: %d ", aType, KMMCScBkupWeightingFactor ); - aProgressManager.MMCScBkupHandleProgress( KMMCScBkupWeightingFactor ); - break; - default: - case EMMCScBkupOwnerDataTypeDataOwner: - case EMMCScBkupOwnerDataTypePublicData: - ASSERT( EFalse ); - break; - } - } - - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::RestoreCombinedDataSizeL() -// -// -// --------------------------------------------------------------------------- -TInt64 RMMCScBkupProgressSizer::RestoreCombinedDataSizeL( const CMMCScBkupDataOwnerInfo& aOwner ) - { - TInt64 size = 0; - // - iDriveFilter.Reset(); - iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() ); - // - TDriveNumber drive = EDriveA; - while ( iDriveFilter.NextValidDrive( drive ) ) - { - for( TInt i=0; i ( i ); - const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, dataType ); - // - if ( allowedForDrive ) - { - // Get the amount of data for this drive - size += aOwner.OperationalSize( dataType, drive ); - } - } - } - // - return size; - } - - - - - - - - - - - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL() -// -// -// --------------------------------------------------------------------------- -TInt RMMCScBkupProgressSizer::NumberOfDriveOpsRequiredL( const CMMCScBkupDataOwnerInfo& aOwner, TMMCScBkupOwnerDataType aType ) - { - TInt count = 0; - // - iDriveFilter.Reset(); - iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() ); - // - TDriveNumber drive = EDriveA; - while ( iDriveFilter.NextValidDrive( drive ) ) - { - const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, aType ); - // - if ( allowedForDrive ) - { - ++count; - } - } - // - return count; - } - - -// --------------------------------------------------------------------------- -// RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL() -// -// -// --------------------------------------------------------------------------- -TInt64 RMMCScBkupProgressSizer::AmountOfPublicDataToBeRestoredL( const CMMCScBkupDataOwnerInfo& aOwner ) - { - TInt64 size = 0; - // - iDriveFilter.Reset(); - iDriveFilter.SetSecondaryDriveFilter( aOwner.Owner().DriveList() ); - // - TDriveNumber drive = EDriveA; - while ( iDriveFilter.NextValidDrive( drive ) ) - { - const TBool allowedForDrive = iDriveAndOperationTypes.IsDataTypeAllowedToAccessDrive( drive, EMMCScBkupOwnerDataTypePublicData ); - // - if ( allowedForDrive ) - { - // Get the amount of data for this drive - size += aOwner.OperationalSize( EMMCScBkupOwnerDataTypePublicData, drive ); - } - } - // - return size; - } - - - -