filemanager/src/fmbkupengine/src/CMMCScBkupOperationParameters.cpp
branchRCL_3
changeset 20 491b3ed49290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/src/CMMCScBkupOperationParameters.cpp	Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,499 @@
+/*
+* 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: CMMCScBkupOpParamsBase implementation
+*
+*
+*/
+
+#include "CMMCScBkupOperationParameters.h"
+
+// System includes
+#include <e32std.h>
+
+// User includes
+#include "MMCScBkupLogger.h"
+#include "CMMCScBkupDriveAndOperationTypeManager.h"
+#include "CMMCScBkupArchiveInfo.h"
+#include "BkupEngine.hrh"
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
+// 
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsBase::CMMCScBkupOpParamsBase()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
+// 
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBase::~CMMCScBkupOpParamsBase()
+    {
+    delete iDriveAndOperations;
+    iArchiveInfos.ResetAndDestroy();
+    iArchiveInfos.Close();
+   }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ConstructL()
+// 
+// 
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBase::ConstructL( BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories )
+    {
+    iCategories = aCategories;
+    iDriveAndOperations = CMMCScBkupDriveAndOperationTypeManager::NewL( aDriveList );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::DriveAndOperations()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C const CMMCScBkupDriveAndOperationTypeManager& CMMCScBkupOpParamsBase::DriveAndOperations() const
+    {
+    return *iDriveAndOperations;
+    }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::SetArchiveInfosL()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C void CMMCScBkupOpParamsBase::SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos)
+    {
+    iArchiveInfos.ResetAndDestroy();
+
+    for(TInt i = 0; i < aInfos.Count(); i++)
+        {
+        iArchiveInfos.AppendL(aInfos[i]);
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ArchiveInfos()
+// 
+// 
+// ---------------------------------------------------------------------------
+RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& CMMCScBkupOpParamsBase::ArchiveInfos()
+    {
+    return iArchiveInfos;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::ArchiveInfo()
+// 
+// 
+// ---------------------------------------------------------------------------
+const CMMCScBkupArchiveInfo& CMMCScBkupOpParamsBase::ArchiveInfo(TBitFlags aCategory) const
+    {
+    CMMCScBkupArchiveInfo* archiveInfo = NULL;
+    
+    for(TInt i = 0; i < iArchiveInfos.Count(); i++)
+        {
+        archiveInfo = iArchiveInfos[i];
+        if(archiveInfo->Category() == aCategory)
+            {
+            break;
+            }
+        }
+    
+    return *archiveInfo;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBase::FileName()
+// 
+// 
+// ---------------------------------------------------------------------------
+const TDesC& CMMCScBkupOpParamsBase::FileName(TInt aIndex) const
+    {
+    const TDesC* ret = &KNullDesC;
+    const CMMCScBkupArchiveInfo& archiveInfo = *iArchiveInfos[aIndex];
+
+    if( archiveInfo.FileName().Length() )
+        {
+        ret = &archiveInfo.FileName();
+        }
+
+    return *ret;
+    }
+
+    
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ReadFromResourceL()
+// 
+// Read categories with associated data from resource
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBackupFull::ReadFromResourceL( BkupCategoryList *aCategoryList )
+    {
+    TInt count( aCategoryList->Count() );
+    
+    for ( TInt i( 0 ); i < count; i++ )
+        {
+        // Read category
+        CBkupCategory* bkupCategory = (*aCategoryList)[i];
+        CArrayFixFlat<unsigned int>* uidsList = bkupCategory->uids();
+        CArrayFixFlat<unsigned int>* exclude_uidsList = bkupCategory->exclude_uids();
+        
+        
+        TBitFlags category = static_cast< TBitFlags >( bkupCategory->category() );
+        
+        // Read archive name
+        const TDriveUnit driveUnit(iDrive);
+        const TDriveName driveName(driveUnit.Name());
+        TFileName name;
+        TPtrC archiveName( bkupCategory->archive_name()->Des() );
+        
+        name.Append(driveName);
+        name.Append(KBackUpFolder());
+        name.Append(archiveName);
+        
+        // Read special flags
+        TBitFlags flags = static_cast< TBitFlags >( bkupCategory->special_flags() );
+        TBitFlags excludedFlags = static_cast< TBitFlags >( 
+        		bkupCategory->exclude_special_flags() );
+        
+        // Read SIDs belonging to category
+        TInt16 subCount = uidsList->Count();
+        RArray<TSecureId> sids;
+        CleanupClosePushL( sids );
+        
+        for(TInt j = 0; j < subCount; j++)
+            {
+            sids.AppendL(static_cast<TSecureId>( (*uidsList)[j] ) );
+            }            
+        
+        // Read excluded SIDs for category
+        subCount = exclude_uidsList->Count();
+        RArray<TSecureId> excludeSids;
+        CleanupClosePushL( excludeSids );
+        
+        for(TInt j = 0; j < subCount; j++)
+            {
+            excludeSids.AppendL(static_cast<TSecureId>( (*exclude_uidsList)[j] ));
+            }            
+        
+        TEntry entry;
+        entry.iName = name;
+        CMMCScBkupArchiveInfo* archiveInfo = CMMCScBkupArchiveInfo::NewLC( entry );
+        archiveInfo->SetCategory( category );
+        archiveInfo->SetSpecialFlags( flags );
+        archiveInfo->SetExcludedSpecialFlags( excludedFlags );
+        archiveInfo->SetSIDs( sids );
+        archiveInfo->SetExcludedSIDs( excludeSids );
+        
+        // If the category is specified, then add it in list of categories to be archived
+#ifdef RD_FILE_MANAGER_BACKUP
+        if( Categories().Value() & category.Value() )
+#else
+        if( category.Value() == EBUCatAllInOne )
+#endif
+            {
+            __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - adding category 0x%x", category.Value());
+            RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& archives = ArchiveInfos();
+            archives.AppendL( archiveInfo );
+            CleanupStack::Pop( archiveInfo );
+            }
+        else
+            {
+            __LOG1("CMMCScBkupOpParamsBase::ReadFromResourceL() - category 0x%x not included", category.Value());
+            CleanupStack::PopAndDestroy( archiveInfo );
+            }
+        
+        CleanupStack::PopAndDestroy( &excludeSids );
+        CleanupStack::PopAndDestroy( &sids );
+        }
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull()
+// 
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsBackupFull::CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive )
+    : iDrive( aDrive )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
+// 
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBackupFull::~CMMCScBkupOpParamsBackupFull()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ConstructL()
+// 
+// 
+// ---------------------------------------------------------------------------
+void CMMCScBkupOpParamsBackupFull::ConstructL( BkupDrivesAndOperationList *aDriveList, 
+		BkupCategoryList *aCategoryList, TBitFlags aCategories )
+    {
+    CMMCScBkupOpParamsBase::ConstructL( aDriveList, aCategories );
+    ReadFromResourceL( aCategoryList );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::NewL()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsBackupFull* CMMCScBkupOpParamsBackupFull::NewL( 
+		BkupDrivesAndOperationList *aDriveList, 
+		BkupCategoryList *aCategoryList,
+    TDriveNumber aDrive, TBitFlags aCategories )
+    {
+    CMMCScBkupOpParamsBackupFull* self = new(ELeave) CMMCScBkupOpParamsBackupFull( aDrive );
+    CleanupStack::PushL( self );
+    self->ConstructL( aDriveList, aCategoryList, aCategories );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::AssociatedOpType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsBackupFull::AssociatedOpType() const
+    {
+    return EMMCScBkupOperationTypeFullBackup;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PartType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TBURPartType CMMCScBkupOpParamsBackupFull::PartType() const
+    {
+    return EBURBackupFull;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::IncrementType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TBackupIncType CMMCScBkupOpParamsBackupFull::IncrementType() const
+    {
+    return EBackupBase;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PassiveTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::PassiveTransferType() const
+    {
+    return EPassiveBaseData;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::ActiveTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsBackupFull::ActiveTransferType() const
+    {
+    return EActiveBaseData;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsBackupFull::PackageTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TPackageDataType CMMCScBkupOpParamsBackupFull::PackageTransferType() const
+    {
+    return ESystemData;
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
+// 
+// C++ constructor.
+// ---------------------------------------------------------------------------
+CMMCScBkupOpParamsRestoreFull::CMMCScBkupOpParamsRestoreFull()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
+// 
+// C++ destructor.
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsRestoreFull::~CMMCScBkupOpParamsRestoreFull()
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::NewL()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C CMMCScBkupOpParamsRestoreFull* CMMCScBkupOpParamsRestoreFull::NewL( 
+		BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories )
+    {
+    CMMCScBkupOpParamsRestoreFull* self = new(ELeave) CMMCScBkupOpParamsRestoreFull( );
+    CleanupStack::PushL( self );
+    self->ConstructL( aDriveList, aCategories );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::AssociatedOpType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TMMCScBkupOperationType CMMCScBkupOpParamsRestoreFull::AssociatedOpType() const
+    {
+    return EMMCScBkupOperationTypeFullRestore;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PartType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TBURPartType CMMCScBkupOpParamsRestoreFull::PartType() const
+    {
+    return EBURRestoreFull;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::IncrementType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TBackupIncType CMMCScBkupOpParamsRestoreFull::IncrementType() const
+    {
+    return EBackupBase;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PassiveTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::PassiveTransferType() const
+    {
+    return EPassiveBaseData;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::ActiveTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TTransferDataType CMMCScBkupOpParamsRestoreFull::ActiveTransferType() const
+    {
+    return EActiveBaseData;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMMCScBkupOpParamsRestoreFull::PackageTransferType()
+// 
+// 
+// ---------------------------------------------------------------------------
+EXPORT_C TPackageDataType CMMCScBkupOpParamsRestoreFull::PackageTransferType() const
+    {
+    return ESystemData;
+    }
+
+