filemanager/src/fmbkupengine/inc/CMMCScBkupOperationParameters.h
changeset 14 1957042d8c7e
child 33 328cf6fbe40c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupengine/inc/CMMCScBkupOperationParameters.h	Fri Apr 16 14:53:38 2010 +0300
@@ -0,0 +1,353 @@
+/*
+* 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: Declaration for CMMCScBkupOpParamsBase
+*     
+*
+*/
+
+#ifndef __CMMCSCBKUPOPERATIONPARAMETERS_H__
+#define __CMMCSCBKUPOPERATIONPARAMETERS_H__
+
+// System includes
+#include <connect/sbdefs.h>
+#include <connect/sbtypes.h>
+#include <barsread.h>
+#include <babitflags.h>
+
+// User includes
+#include "MMCScBkupOperations.h"
+#include "CMMCScBkupDataOwnerInfo.h"
+#include "RMMCScBkupPointerArray.h"
+
+// Namespaces
+using namespace conn;
+
+// Classes referenced
+class CMMCScBkupDriveAndOperationTypeManager;
+class CMMCScBkupArchiveInfo;
+
+_LIT( KBackUpFolder, "\\Backup\\" );
+_LIT( KBackUpFiles, "*.arc" );
+
+
+class TBkupDrivesAndOperation
+{
+public:
+	TBkupDrivesAndOperation(){}
+	TBkupDrivesAndOperation( unsigned int drvCategories, unsigned int ownerDataType );
+	TBkupDrivesAndOperation( const TBkupDrivesAndOperation &other )
+    { 
+        mDrvCategories  = other.mDrvCategories;
+        mOwnerDataType  = other.mOwnerDataType;
+    }
+
+    void setDrvCategories( unsigned int drvCategories ){ mDrvCategories = drvCategories; }
+    void setOwnerDataType( unsigned int ownerDataType ){ mOwnerDataType = ownerDataType; }
+
+    unsigned int drvCategories(){ return mDrvCategories; }
+    unsigned int ownerDataType(){ return mOwnerDataType; }
+private:
+    unsigned int mDrvCategories;
+    unsigned int mOwnerDataType;
+};
+
+class CBkupCategory: CBase
+{
+private:
+      
+	CBkupCategory()
+	{
+	}
+public:
+	
+	static CBkupCategory* NewL()
+	{
+	CBkupCategory* self = NewLC();
+		CleanupStack::Pop(self);
+		return self;
+	}
+	static CBkupCategory* NewLC()
+	{
+	    CBkupCategory* self = new(ELeave) CBkupCategory();
+		CleanupStack::PushL(self);
+		self->ConstructL();
+		return self;
+	}
+	void ConstructL()
+	    {
+	    mUids = new ( ELeave ) CArrayFixFlat<unsigned int>( 10 );
+	    mExclude_uids = new ( ELeave ) CArrayFixFlat<unsigned int>( 10 );
+	    mArchive_name = HBufC::NewL(1);
+	    }
+	
+    ~CBkupCategory()
+    {
+        mUids->Reset();
+        mExclude_uids->Reset();
+        delete mArchive_name;
+    }
+
+    void setCategory( unsigned int category )
+    {
+        mCategory = category;
+    }
+
+    void setArchive_name( TDesC16& archive_name )
+    {
+		delete mArchive_name;
+        mArchive_name = HBufC::NewL( archive_name.Length() );
+        *mArchive_name = archive_name;
+    }
+
+    void setSpecial_flags( unsigned int special_flags )
+    {
+        mSpecial_flags = special_flags;
+    }
+
+    void setExclude_special_flags( unsigned int exclude_special_flags )
+    { 
+        mExclude_special_flags = exclude_special_flags; 
+    }
+
+    void addUids( unsigned int uid )
+    {
+        mUids->AppendL( uid, sizeof(unsigned int));
+    }
+
+    void addExclude_uids( unsigned int exclude_uid )
+    {
+        mExclude_uids->AppendL( exclude_uid, sizeof(unsigned int) ); 
+    }
+
+    unsigned int        category()              { return mCategory; }
+    HBufC*              archive_name()         { return mArchive_name; }
+    unsigned int        special_flags()         { return mSpecial_flags; }
+    unsigned int        exclude_special_flags() { return mExclude_special_flags; }
+    CArrayFixFlat<unsigned int>* uids()         { return mUids; }
+    CArrayFixFlat<unsigned int>* exclude_uids() { return mExclude_uids; }
+
+private:
+    unsigned int                     mCategory;
+    HBufC*                           mArchive_name;
+    unsigned int                     mSpecial_flags;
+    unsigned int                     mExclude_special_flags;
+    CArrayFixFlat<unsigned int>*     mUids;
+    CArrayFixFlat<unsigned int>*     mExclude_uids;
+};
+
+typedef CArrayFixFlat<TBkupDrivesAndOperation> BkupDrivesAndOperationList;
+typedef RPointerArray<CBkupCategory>          BkupCategoryList;
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsBase) : public CBase
+    {
+    public:
+
+        /**
+        *
+        */
+        IMPORT_C ~CMMCScBkupOpParamsBase();
+
+    protected:
+
+        /**
+        *
+        */
+        CMMCScBkupOpParamsBase( );
+
+        /**
+        *
+        */
+        void ConstructL( BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories );
+
+    public: // Common mandatory framework methods
+
+        /**
+        *
+        */
+        virtual TMMCScBkupOperationType AssociatedOpType() const = 0;
+
+        /**
+        *
+        */
+        virtual TBURPartType PartType() const = 0;
+
+        /**
+        *
+        */
+        virtual TBackupIncType IncrementType() const = 0;
+
+        /**
+        *
+        */
+        virtual TTransferDataType PassiveTransferType() const = 0;
+
+        /**
+        *
+        */
+        virtual TTransferDataType ActiveTransferType() const = 0;
+
+        /**
+        *
+        */
+        virtual TPackageDataType PackageTransferType() const = 0;
+
+    public: // Common attributes
+
+        /**
+        *
+        */
+        IMPORT_C const CMMCScBkupDriveAndOperationTypeManager& DriveAndOperations() const;
+        
+        /**
+        *
+        */
+        IMPORT_C void SetArchiveInfosL(RPointerArray<CMMCScBkupArchiveInfo>& aInfos);
+        
+        /**
+        *
+        */
+        RMMCScBkupPointerArray<CMMCScBkupArchiveInfo>& ArchiveInfos();
+        
+        /**
+        *
+        */
+        const CMMCScBkupArchiveInfo& ArchiveInfo(TBitFlags aCategory) const;
+
+        /**
+        *
+        */
+        const TDesC& FileName(TInt aIndex) const;
+
+        /**
+        *
+        */
+        TBitFlags Categories() { return iCategories; }
+        
+    private: // Data members
+
+        //
+        CMMCScBkupDriveAndOperationTypeManager* iDriveAndOperations;
+        //
+        RMMCScBkupPointerArray< CMMCScBkupArchiveInfo > iArchiveInfos;
+        //
+        TBitFlags iCategories;
+    };
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsBackupFull) : public CMMCScBkupOpParamsBase
+    {
+    public:
+
+        /**
+        *
+        */
+        IMPORT_C static CMMCScBkupOpParamsBackupFull* NewL( 
+        		BkupDrivesAndOperationList *aDriveList, 
+        		BkupCategoryList *aCategoryList,
+            TDriveNumber aDrive, TBitFlags aCategories );
+
+        /**
+        *
+        */
+        IMPORT_C ~CMMCScBkupOpParamsBackupFull();
+
+    private:
+
+        /**
+        *
+        */
+        CMMCScBkupOpParamsBackupFull( TDriveNumber aDrive );
+
+        /**
+        *
+        */
+        void ConstructL( BkupDrivesAndOperationList *aDriveList, 
+        		BkupCategoryList *aCategoryList, TBitFlags aCategories );
+
+        /**
+        *
+        */
+        void ReadFromResourceL( BkupCategoryList *aCategoryList );
+        
+    public: // From CMMCScBkupOpParamsBase
+        IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
+        IMPORT_C TBURPartType PartType() const;
+        IMPORT_C TBackupIncType IncrementType() const;
+        IMPORT_C TTransferDataType PassiveTransferType() const;
+        IMPORT_C TTransferDataType ActiveTransferType() const;
+        IMPORT_C TPackageDataType PackageTransferType() const;
+
+    private: // Data members
+
+        //
+        TDriveNumber iDrive;
+    };
+
+
+
+
+/**
+*
+*
+* @since 3.0
+*/
+NONSHARABLE_CLASS(CMMCScBkupOpParamsRestoreFull) : public CMMCScBkupOpParamsBase
+    {
+    public:
+
+        /**
+        *
+        */
+        IMPORT_C static CMMCScBkupOpParamsRestoreFull* NewL( 
+        		BkupDrivesAndOperationList *aDriveList, TBitFlags aCategories );
+
+        /**
+        *
+        */
+        IMPORT_C ~CMMCScBkupOpParamsRestoreFull();
+
+    private:
+
+        /**
+        *
+        */
+        CMMCScBkupOpParamsRestoreFull();
+
+    public: // From CMMCScBkupOpParamsBase
+        IMPORT_C TMMCScBkupOperationType AssociatedOpType() const;
+        IMPORT_C TBURPartType PartType() const;
+        IMPORT_C TBackupIncType IncrementType() const;
+        IMPORT_C TTransferDataType PassiveTransferType() const;
+        IMPORT_C TTransferDataType ActiveTransferType() const;
+        IMPORT_C TPackageDataType PackageTransferType() const;
+    };
+
+
+
+
+
+#endif // __CMMCSCBKUPOPERATIONPARAMETERS_H__
+
+//End of File