diff -r 491b3ed49290 -r 65326cf895ed filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp --- a/filemanager/src/fmbkupengine/src/MMCScBkupSBEUtils.cpp Tue Aug 31 15:06:05 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,523 +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: MMCScBkupSBEUtils implementation -* -* -*/ - -#include "MMCScBkupSBEUtils.h" - -// System includes -#include -#include -#include "CMMCScBkupDataOwnerInfo.h" - -// Namespaces -using namespace conn; - - - -// ========================= MEMBER FUNCTIONS ================================ - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::SecureIdFromGenericL() -// -// -// --------------------------------------------------------------------------- -TSecureId MMCScBkupSBEUtils::SecureIdFromGenericL(const CSBGenericDataType& aGeneric) - { - TSecureId ret = 0; - CSBGenericDataType* nonConstOriginal = const_cast(&aGeneric); - const TSBDerivedType type = aGeneric.DerivedTypeL(); - // - switch(type) - { - case ESIDDerivedType: - { - CSBSecureId* temp = CSBSecureId::NewL( nonConstOriginal ); - CleanupStack::PushL( temp ); - ret = temp->SecureIdL(); - CleanupStack::PopAndDestroy( temp ); - break; - } - case ESIDTransferDerivedType: - { - // First make a generic transfer type object... - CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() ); - CleanupStack::PushL(transferTypeTemp); - - // Now make instance transfer type - CSBSIDTransferType* temp = CSBSIDTransferType::NewL( transferTypeTemp ); - CleanupStack::PushL(temp); - - // Now get the result - ret = temp->SecureIdL(); - - // Tidy up - CleanupStack::PopAndDestroy(2, transferTypeTemp); - break; - } - case EPackageDerivedType: - { - CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal ); - CleanupStack::PushL( temp ); - ret = temp->SecureIdL(); - CleanupStack::PopAndDestroy( temp ); - break; - } - case EPackageTransferDerivedType: - case EJavaDerivedType: - case EJavaTransferDerivedType: - default: - __BREAKPOINT(); - User::Leave(KErrNotSupported); - break; - } - // - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::PackageIdFromGenericL() -// -// -// --------------------------------------------------------------------------- -TUid MMCScBkupSBEUtils::PackageIdFromGenericL(const CSBGenericDataType& aGeneric) - { - TUid ret = KNullUid; - CSBGenericDataType* nonConstOriginal = const_cast(&aGeneric); - const TSBDerivedType type = aGeneric.DerivedTypeL(); - // - switch(type) - { - case EPackageDerivedType: - { - CSBPackageId* temp = CSBPackageId::NewL( nonConstOriginal ); - CleanupStack::PushL(temp); - ret = temp->PackageIdL(); - CleanupStack::PopAndDestroy(temp); - break; - } - case EPackageTransferDerivedType: - { - // First make a generic transfer type object... - CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() ); - CleanupStack::PushL(transferTypeTemp); - - // Now make instance transfer type - CSBPackageTransferType* temp = CSBPackageTransferType::NewL( transferTypeTemp ); - CleanupStack::PushL(temp); - - // Now get the result - ret = temp->PackageIdL(); - - // Tidy up - CleanupStack::PopAndDestroy(2, transferTypeTemp); - break; - } - case ESIDDerivedType: - case ESIDTransferDerivedType: - case EJavaDerivedType: - case EJavaTransferDerivedType: - default: - __BREAKPOINT(); - User::Leave(KErrNotSupported); - break; - } - // - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::JavaHashFromGenericLC() -// -// -// --------------------------------------------------------------------------- -HBufC* MMCScBkupSBEUtils::JavaHashFromGenericLC(const CSBGenericDataType& aGeneric) - { - HBufC* ret = NULL; - CSBGenericDataType* nonConstOriginal = const_cast(&aGeneric); - const TSBDerivedType type = aGeneric.DerivedTypeL(); - // - switch(type) - { - case EJavaDerivedType: - { - CSBJavaId* temp = CSBJavaId::NewL( nonConstOriginal ); - CleanupStack::PushL(temp); - ret = temp->SuiteHashL().AllocL(); - CleanupStack::PopAndDestroy(temp); - CleanupStack::PushL( ret ); - break; - } - case EJavaTransferDerivedType: - { - // First make a generic transfer type object... - CSBGenericTransferType* transferTypeTemp = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() ); - CleanupStack::PushL(transferTypeTemp); - - // Now make a instance transfer type - CSBJavaTransferType* temp = CSBJavaTransferType::NewL( transferTypeTemp ); - CleanupStack::PushL(temp); - - // Now get the result - ret = temp->SuiteHashL().AllocL(); - - // Tidy up - CleanupStack::PopAndDestroy(2, transferTypeTemp); - CleanupStack::PushL( ret ); - break; - } - case ESIDDerivedType: - case ESIDTransferDerivedType: - case EPackageDerivedType: - case EPackageTransferDerivedType: - default: - __BREAKPOINT(); - User::Leave(KErrNotSupported); - break; - } - // - if ( ret == NULL ) - { - ret = KNullDesC().AllocLC(); - } - // - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::CopyLC() -// -// -// --------------------------------------------------------------------------- -CSBGenericDataType* MMCScBkupSBEUtils::CopyLC(const CSBGenericDataType& aToBeCopied) - { - CSBGenericDataType* ret = NULL; - - // Have to do this through poor implementation of SBE API - CSBGenericDataType* nonConstOriginal = const_cast(&aToBeCopied); - // - const TSBDerivedType type = nonConstOriginal->DerivedTypeL(); - switch(type) - { - case ESIDDerivedType: - ret = CSBSecureId::NewL(nonConstOriginal); - break; - case EPackageDerivedType: - ret = CSBPackageId::NewL(nonConstOriginal); - break; - case EJavaDerivedType: - ret = CSBJavaId::NewL(nonConstOriginal); - break; - case ESIDTransferDerivedType: - case EPackageTransferDerivedType: - case EJavaTransferDerivedType: - { - // Must first create a generic transfer type object... sigh... - CSBGenericTransferType* transferType = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() ); - CleanupStack::PushL( transferType ); - if ( ESIDTransferDerivedType == type ) - { - ret = CSBSIDTransferType::NewL( transferType ); - } - else if ( EPackageTransferDerivedType == type ) - { - ret = CSBPackageTransferType::NewL( transferType ); - } - // Type is EJavaTransferDerivedType - else - { - ret = CSBJavaTransferType::NewL( transferType ); - } - CleanupStack::PopAndDestroy( transferType ); - } - default: - break; - } - // - if (!ret) - { - __BREAKPOINT(); - User::Leave(KErrNotSupported); - } - CleanupStack::PushL(ret); - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::TransferTypeLC() -// -// -// --------------------------------------------------------------------------- -CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC( const CSBGenericDataType& aDT, TDriveNumber aDrive, - TTransferDataType aTransferType, TInt aVersion ) - { - CSBGenericTransferType* ret = NULL; - - // Have to do this through poor implementation of SBE API - CSBGenericDataType* nonConstOriginal = const_cast< CSBGenericDataType* >( &aDT ); - // - const TSBDerivedType type = nonConstOriginal->DerivedTypeL(); - switch( type ) - { - case ESIDDerivedType: - case ESIDTransferDerivedType: - { - const TSecureId secureId = SecureIdFromGenericL( aDT ); - ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType ); - break; - } - - case EPackageDerivedType: - { - TSecureId secureId = SecureIdFromGenericL( aDT ); - if( secureId.iId == KNullUid.iUid && aVersion > CMMCScBkupDataOwnerInfo::EStreamFormatVersionFirst ) - { - secureId = MMCScBkupSBEUtils::PackageIdFromGenericL( aDT ); - } - ret = CSBSIDTransferType::NewL( secureId, aDrive, aTransferType ); - break; - } - - default: - case EPackageTransferDerivedType: - case EJavaDerivedType: - case EJavaTransferDerivedType: - __BREAKPOINT(); - User::Leave( KErrNotSupported ); - break; - } - // - CleanupStack::PushL( ret ); - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::TransferTypeLC() -// -// -// --------------------------------------------------------------------------- -CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive, - TPackageDataType aDataType, TInt /*aVersion*/) - { - CSBGenericTransferType* ret = NULL; - - // Have to do this through poor implementation of SBE API - CSBGenericDataType* nonConstOriginal = const_cast(&aDT); - // - const TSBDerivedType type = nonConstOriginal->DerivedTypeL(); - switch(type) - { - case EPackageDerivedType: - case EPackageTransferDerivedType: - { - const TUid packageId = PackageIdFromGenericL(aDT); - ret = CSBPackageTransferType::NewL(packageId, aDrive, aDataType); - break; - } - - default: - case ESIDDerivedType: - case ESIDTransferDerivedType: - case EJavaDerivedType: - case EJavaTransferDerivedType: - __BREAKPOINT(); - User::Leave(KErrNotSupported); - break; - } - // - CleanupStack::PushL(ret); - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::TransferTypeLC() -// -// -// --------------------------------------------------------------------------- -CSBGenericTransferType* MMCScBkupSBEUtils::TransferTypeLC(const CSBGenericDataType& aDT, TDriveNumber aDrive, - TJavaTransferType aDataType, TInt /*aVersion*/) - { - CSBGenericTransferType* ret = NULL; - - // Have to do this through poor implementation of SBE API - CSBGenericDataType* nonConstOriginal = const_cast(&aDT); - // - const TSBDerivedType type = nonConstOriginal->DerivedTypeL(); - switch(type) - { - case EJavaDerivedType: - case EJavaTransferDerivedType: - { - HBufC* hash = JavaHashFromGenericLC( aDT ); - ret = CSBJavaTransferType::NewL( *hash, aDrive, aDataType ); - CleanupStack::PopAndDestroy( hash ); - break; - } - - default: - case ESIDDerivedType: - case ESIDTransferDerivedType: - case EPackageDerivedType: - case EPackageTransferDerivedType: - __BREAKPOINT(); - User::Leave(KErrNotSupported); - break; - } - // - CleanupStack::PushL(ret); - return ret; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::PhoneIsInBackupOrRestoreModeL() - { - TBool backupInProgress = EFalse; - // - TInt value = 0; - const TInt error = RProperty::Get( KUidSystemCategory, KUidBackupRestoreKey, value ); - User::LeaveIfError( error ); - // - const TBURPartType partType = static_cast< TBURPartType >( value & KBURPartTypeMask ); - if (value != 0) - { - switch(partType) - { - case EBURUnset: - case EBURNormal: - break; - case EBURBackupFull: - case EBURBackupPartial: - case EBURRestoreFull: - case EBURRestorePartial: - backupInProgress = ETrue; - break; - } - } - // - return backupInProgress; - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::EndBackupOrRestoreL() -// -// -// --------------------------------------------------------------------------- -void MMCScBkupSBEUtils::EndBackupOrRestoreL( CSBEClient& aSBEClient ) - { - TDriveList nullDriveList; - aSBEClient.SetBURModeL( nullDriveList, EBURNormal, ENoBackup); - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::HasSystemDataL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::HasSystemDataL( const CDataOwnerInfo& aDataOwner ) - { - const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL(); - const TBool systemDataType = ( type == EPackageDerivedType || - type == EPackageTransferDerivedType ); - const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles ); - // - return ( systemDataType && hasSystemData ); - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::HasJavaDataL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::HasJavaDataL( const CDataOwnerInfo& aDataOwner ) - { - const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL(); - const TBool javaDataType = ( type == EJavaDerivedType || - type == EJavaTransferDerivedType ); - const TBool hasSystemData = ( aDataOwner.CommonSettings() & EHasSystemFiles ); - - // Java abuses the "has system files flag" - this has been confirmed - // with Symbian. - return ( javaDataType && hasSystemData ); - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::HasPassiveDataL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::HasPassiveDataL( const CDataOwnerInfo& aDataOwner ) - { - const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL(); - const TBool passiveDataType = ( type == ESIDDerivedType || - type == ESIDTransferDerivedType || - type == EPackageDerivedType || - type == EPackageTransferDerivedType ); - const TBool hasPassiveData = ( aDataOwner.CommonSettings() & EPassiveBUR ); - // - return ( passiveDataType && hasPassiveData ); - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::HasActiveDataL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::HasActiveDataL( const CDataOwnerInfo& aDataOwner ) - { - const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL(); - const TBool activeDataType = ( type == ESIDDerivedType || - type == ESIDTransferDerivedType || - type == EPackageDerivedType || - type == EPackageTransferDerivedType ); - const TBool hasActiveData = ( aDataOwner.CommonSettings() & EActiveBUR ); - // - return ( activeDataType && hasActiveData ); - } - - -// --------------------------------------------------------------------------- -// MMCScBkupSBEUtils::HasPublicDataL() -// -// -// --------------------------------------------------------------------------- -TBool MMCScBkupSBEUtils::HasPublicDataL( const CDataOwnerInfo& aDataOwner ) - { - const TSBDerivedType type = aDataOwner.Identifier().DerivedTypeL(); - const TBool publicDataType = ( type == ESIDDerivedType || - type == ESIDTransferDerivedType || - type == EPackageDerivedType || - type == EPackageTransferDerivedType ); - const TBool hasPublicData = ( aDataOwner.PassiveSettings() & EHasPublicFiles ); - // - return ( hasPublicData && publicDataType ); - } -