--- a/filemanager/bkupengine/src/MMCScBkupSBEUtils.cpp Tue Feb 02 00:03:31 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,524 +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 <e32property.h>
-#include <connect/sbdefs.h>
-#include "CMMCScBkupDataOwnerInfo.h"
-
-// Namespaces
-using namespace conn;
-
-
-
-// ========================= MEMBER FUNCTIONS ================================
-
-// ---------------------------------------------------------------------------
-// MMCScBkupSBEUtils::SecureIdFromGenericL()
-//
-//
-// ---------------------------------------------------------------------------
-TSecureId MMCScBkupSBEUtils::SecureIdFromGenericL(const CSBGenericDataType& aGeneric)
- {
- TSecureId ret = 0;
- CSBGenericDataType* nonConstOriginal = const_cast<CSBGenericDataType*>(&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<CSBGenericDataType*>(&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<CSBGenericDataType*>(&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<CSBGenericDataType*>(&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 );
- switch(type)
- {
- case ESIDTransferDerivedType:
- ret = CSBSIDTransferType::NewL( transferType );
- break;
- case EPackageTransferDerivedType:
- ret = CSBPackageTransferType::NewL( transferType );
- break;
- case EJavaTransferDerivedType:
- ret = CSBJavaTransferType::NewL( transferType );
- break;
- default:
- break;
- }
- 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<CSBGenericDataType*>(&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<CSBGenericDataType*>(&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 );
- }
-