filemanager/src/fmbkupenginewrapper/inc/fmbkupcommon.h
branchRCL_3
changeset 38 491b3ed49290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/fmbkupenginewrapper/inc/fmbkupcommon.h	Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,404 @@
+/*
+ * Copyright (c) 2009 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:
+ *      The header file of the backup common class
+ */
+
+#ifndef FMBKUPCOMMON_H
+#define FMBKUPCOMMON_H
+
+
+//#define KFileManagerUID3 0x101F84EB
+
+namespace FmBkupEngineCommon
+{
+
+enum TFileManagerBackupContentMask
+    {
+    EFileManagerBackupContentAll = 0x1,
+    EFileManagerBackupContentSettings = 0x2,
+    EFileManagerBackupContentMessages = 0x4,
+    EFileManagerBackupContentContacts = 0x8,
+    EFileManagerBackupContentCalendar = 0x10,
+    EFileManagerBackupContentBookmarks = 0x20,
+    EFileManagerBackupContentUserFiles = 0x40,
+    EFileManagerBackupContentFirst = 0x2,
+    EFileManagerBackupContentLast = 0x40
+    };
+
+
+	// Partial backup categories bitmask values
+	enum MAEngineBackupCategories
+		{
+		EBUCatSettings  = 0x1,
+		EBUCatMessages  = 0x2,
+		EBUCatContacts  = 0x4,
+		EBUCatCalendar  = 0x8,
+		EBUCatBookmarks = 0x10,
+		EBUCatUserFiles = 0x20,
+		EBUCatAllInOne  = 0x8000000,
+		EBUCatAllSeparately = 0x7FFFFFF 
+		// Set as 0xFFFFFFF (EBUCatAllInOne+EBUCatAllSeparately) if archive containing 
+		// data from all data owners needs to be created.
+		};
+	
+	// Bitmask values for special ruling of which category data owner belongs to
+    enum MAEngineBackupCatSpecFlag
+    {
+	    EBUCatSpecNone      =   0x0,
+	    EBUCatSpecSystem    =   0x1,
+        EBUCatSpecJava      =   0x2,
+	    EBUCatSpecPublic    =   0x4,
+	    EBUCatSpecAll       =   0x8
+    };
+	
+	// Defines drive caterories for multiple drives to setup backup sources and restore targets
+    enum MAEngineBackupDriveType
+    {
+	    EBkupDeviceMemories         =   0x1,
+	    EBkupInternalMassStorages   =   0x2,
+	    EBkupExternalMassStorages   =   0x4
+    };
+
+    enum TMMCScBkupOwnerDataType
+    {
+    // Relates to all data owners
+    EMMCScBkupOwnerDataTypeDataOwner = 0,
+
+    // Relates to java data for a particular owner
+    EMMCScBkupOwnerDataTypeJavaData,
+
+    // Relates to public data for a particular owner
+    EMMCScBkupOwnerDataTypePublicData,
+
+    // Relates to system data for a particular owner
+    EMMCScBkupOwnerDataTypeSystemData,
+
+    // Relates to active data for a particular owner
+    EMMCScBkupOwnerDataTypeActiveData,
+
+    // Relates to passive data for a particular owner
+    EMMCScBkupOwnerDataTypePassiveData,
+
+    // Always leave this last, don't assign it
+    // a value. Don't use it either!
+    EMMCScBkupOwnerDataTypeCount,
+
+    // A generic 'any data type' value. Used by the drive-specific-request &
+    // data sizer. Not a real SBE data type, hence it appears after
+    // the last marker.
+    EMMCScBkupOwnerDataTypeAny
+    };
+
+    const QString const_Bkup_EBUCatSettings     ( "EBUCatSettings" );
+    const QString const_Bkup_EBUCatMessages     ( "EBUCatMessages" );
+    const QString const_Bkup_EBUCatContacts     ( "EBUCatContacts" );
+    const QString const_Bkup_EBUCatCalendar     ( "EBUCatCalendar" );
+    const QString const_Bkup_EBUCatBookmarks    ( "EBUCatBookmarks" );
+    const QString const_Bkup_EBUCatUserFiles    ( "EBUCatUserFiles" );
+    const QString const_Bkup_EBUCatAllInOne     ( "EBUCatAllInOne" );
+    const QString const_Bkup_EBUCatAllSeparately( "EBUCatAllSeparately" );
+
+    const QString const_bkup_EBUCatSpecNone   ( "EBUCatSpecNone" );
+    const QString const_bkup_EBUCatSpecSystem ( "EBUCatSpecSystem" );
+    const QString const_bkup_EBUCatSpecJava   ( "EBUCatSpecJava" );
+    const QString const_bkup_EBUCatSpecPublic ( "EBUCatSpecPublic" );
+    const QString const_bkup_EBUCatSpecAll    ( "EBUCatSpecAll" );
+
+    const QString const_bkup_EBkupDeviceMemories( 
+        "EBkupDeviceMemories"
+        );
+    const QString const_bkup_EBkupInternalMassStorages(
+        "EBkupInternalMassStorages"
+        );
+    const QString const_bkup_EBkupExternalMassStorages(
+        "EBkupExternalMassStorages"
+        );
+
+    const QString const_bkup_EMMCScBkupOwnerDataTypeDataOwner(
+        "EMMCScBkupOwnerDataTypeDataOwner" 
+        );
+    const QString const_bkup_EMMCScBkupOwnerDataTypeJavaData(
+        "EMMCScBkupOwnerDataTypeJavaData"
+        );
+    const QString const_bkup_EMMCScBkupOwnerDataTypePublicData(
+        "EMMCScBkupOwnerDataTypePublicData"
+        );
+    const QString const_bkup_EMMCScBkupOwnerDataTypeSystemData(
+        "EMMCScBkupOwnerDataTypeSystemData"
+        );
+    const QString const_bkup_EMMCScBkupOwnerDataTypeActiveData(
+        "EMMCScBkupOwnerDataTypeActiveData"
+        );
+    const QString const_bkup_EMMCScBkupOwnerDataTypePassiveData(
+        "EMMCScBkupOwnerDataTypePassiveData"
+        );
+
+}
+
+class ConfigStringConverter
+{
+public:
+    static unsigned int drivesAndOperations_DriveToUInt( bool* ok, QString paramString )
+    {
+        unsigned int ret = 0;
+        *ok = false;
+        if ( paramString.contains( 
+            FmBkupEngineCommon::const_bkup_EBkupDeviceMemories,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBkupDeviceMemories;
+        }
+        if ( paramString.contains( 
+            FmBkupEngineCommon::const_bkup_EBkupInternalMassStorages,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBkupInternalMassStorages;
+        }
+        if ( paramString.contains( 
+            FmBkupEngineCommon::const_bkup_EBkupExternalMassStorages,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBkupExternalMassStorages;
+        }
+        return ret;
+    }
+
+    static unsigned int drivesAndOperations_TypeToUInt(
+        bool* ok, QString paramString )
+    {
+        unsigned int ret = 0;
+        *ok = false;
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeDataOwner,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeDataOwner;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeJavaData,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeJavaData;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypePublicData,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypePublicData;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeSystemData,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeSystemData;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypeActiveData,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypeActiveData;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EMMCScBkupOwnerDataTypePassiveData,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EMMCScBkupOwnerDataTypePassiveData;
+        }
+        return ret;
+    }
+
+    static unsigned int backupCategory_CategoryToUInt(
+        bool* ok, QString paramString )
+    {
+        unsigned int ret = 0;
+        *ok = false;
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatSettings,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSettings;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatMessages,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatMessages;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatContacts,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatContacts;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatCalendar,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatCalendar;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatBookmarks,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatBookmarks;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatUserFiles,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatUserFiles;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatAllInOne,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatAllInOne;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_Bkup_EBUCatAllSeparately,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatAllSeparately;
+        }
+        return ret;
+    }
+
+    static unsigned int backupCategory_Special_flagsToUInt(
+        bool* ok, QString paramString )
+    {
+        unsigned int ret = 0;
+        *ok = false;
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EBUCatSpecNone,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSpecNone;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EBUCatSpecSystem,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSpecSystem;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EBUCatSpecJava,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSpecJava;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EBUCatSpecPublic,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSpecPublic;
+        }
+        if ( paramString.contains(
+            FmBkupEngineCommon::const_bkup_EBUCatSpecAll,
+            Qt::CaseInsensitive ) ){
+                *ok = true;
+                ret |= FmBkupEngineCommon::EBUCatSpecAll;
+        }
+        return ret;
+    }
+};
+class FmBkupDrivesAndOperation
+{
+public:
+    FmBkupDrivesAndOperation(){}
+    FmBkupDrivesAndOperation( unsigned int drvCategories, unsigned int ownerDataType );
+    FmBkupDrivesAndOperation( const FmBkupDrivesAndOperation &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 FmBkupBackupCategory
+{
+public:
+    FmBkupBackupCategory(){}
+    FmBkupBackupCategory( const FmBkupBackupCategory &other )
+    { 
+        mCategory               = other.mCategory;
+        mArchive_name           = other.mArchive_name;
+        mSpecial_flags          = other.mSpecial_flags;
+        mExclude_special_flags  = other.mExclude_special_flags;
+        mUids                   = other.mUids;
+        mExclude_uids           = other.mExclude_uids;
+    }
+    ~FmBkupBackupCategory()
+    {
+        mUids.clear();
+        mExclude_uids.clear();
+    }
+
+    void setCategory( unsigned int category )
+    {
+        mCategory = category;
+    }
+
+    void setArchive_name( QString archive_name )
+    {
+        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.append( uid);
+    }
+
+    void addExclude_uids( unsigned int exclude_uid )
+    {
+        mExclude_uids.append( exclude_uid ); 
+    }
+
+    unsigned int        category()              { return mCategory; }
+    QString             archive_name()         { return mArchive_name; }
+    unsigned int        special_flags()         { return mSpecial_flags; }
+    unsigned int        exclude_special_flags() { return mExclude_special_flags; }
+    QList<unsigned int> *uids()                 { return &mUids; }
+    QList<unsigned int> *exclude_uids()         { return &mExclude_uids; }
+
+private:
+    unsigned int        mCategory;
+    QString             mArchive_name;
+    unsigned int        mSpecial_flags;
+    unsigned int        mExclude_special_flags;
+    QList<unsigned int> mUids;
+    QList<unsigned int> mExclude_uids;
+};
+
+
+#endif  //FMBKUPCOMMON_H