harvesterplugins/media/mediautils/inc/cpixmdedbmanager.h
changeset 0 ccd0fd43f247
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/harvesterplugins/media/mediautils/inc/cpixmdedbmanager.h	Mon Apr 19 14:40:05 2010 +0300
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2010 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:  This class keeps a snap shot of the object id present in the MDS DB
+*                Any change monitored by the mde harvester plugin, first checks in this
+*                table and then updates the content in the lucene database
+*
+*/
+
+
+#ifndef CPIX_MDE_DB_MANAGER_H_
+#define CPIX_MDE_DB_MANAGER_H_
+
+#include <e32def.h>
+#include <e32base.h>
+#include <d32dbms.h>
+
+enum TCPixMdeDBManagerAPIReturnType
+    {
+    EOperationSuccess=0,
+    EOperationFailure,
+    EItemPresent,
+    EItemNotPresent,
+    EOperationUndefined
+    };
+typedef enum TCPixMdeDBManagerAPIReturnType TCPIXMDEDBAPIReturnType;
+
+//Forward declaration
+class CMDSEntity;
+
+class CCPIXMDEDbManager : public CBase
+    {
+public:
+
+    /**
+     * Construction
+     * @return instance of CCPIXMDEDbManager
+     */
+    static CCPIXMDEDbManager* NewL(const TUid& aPluginImplUid);
+    /**
+     * Construction
+     * @return instance of CCPIXMDEDbManager
+     */
+    static CCPIXMDEDbManager* NewLC(const TUid& aPluginImplUid);
+    /**
+     * Destructor
+     */    
+    virtual ~CCPIXMDEDbManager();
+    
+    /**
+     * Utility method Add an Object ID in the database
+     * @param TUint& aObjectId
+     * @param aMdsItem mds entity to be added
+     * @return TCPixMdeDBManagerAPIReturnType
+     */    
+    TCPIXMDEDBAPIReturnType AddL(const TUint& aObjectId,CMDSEntity& aMdsItem);
+    
+    /**
+     * Utility method Update an Object 
+     * @param TUint& aObjectId
+     * @param aMdsItem mds entity to be added
+     * @return TCPixMdeDBManagerAPIReturnType
+     */
+    TCPIXMDEDBAPIReturnType UpdateL(const TUint& aObjId,CMDSEntity& aMdsItem);
+    /*
+     * Checks if item already exist in database
+     * @param aObjectId object id of MDS Items
+     * @return ETrue if exist else EFalse
+     */
+    TBool IsAlreadyExistL(const TUint& aObjectId);
+    
+    /*
+     * Get the MDS item from Database
+     * @param aKey object Id of item
+     * @param aMdsItem reference of entity
+     */
+    void GetItemL(const TInt aKey, CMDSEntity& aMdsItem); 
+
+    /**
+     * Utility method remove an Object ID in the database
+     * @param aObjectId Object ID
+     * @return TCPixMdeDBManagerAPIReturnType
+     */    
+    TCPIXMDEDBAPIReturnType RemoveL(const TUint& aObjectId);
+    
+    /**
+     * Utility method remove all items from database
+     * @return TCPixMdeDBManagerAPIReturnType
+     */    
+    TCPIXMDEDBAPIReturnType ResetL();    
+    
+protected:
+    /*
+     * second phase constructor ConstructL
+     */
+    void ConstructL(const TUid& aPluginImplUid);
+    /*
+     * Default constructor
+     */
+    CCPIXMDEDbManager(); //Default constructor
+    
+    
+private:
+    void CreateMdeCPIXSyncDBL(const TDesC& aDatabaseFile); 
+    
+    /**
+     * Creates a column set used to create a new database file.
+     * @return column set.
+     */
+    CDbColSet* CreateColumnSetLC();
+    void Rollback();
+        
+    
+private:
+    /**
+     *  Session to File system
+     */
+    RFs  iFs;
+    
+    //Flag to check if database is opened or not
+    TBool iOpened;
+    /**
+     * Interface to Notepad database     
+     */ 
+    RDbNamedDatabase iDatabase;    
+    /**
+     * handle to the table.owned
+     */ 
+    RDbTable iTable;
+    };
+
+#endif /* CPIXDOCFETCHER_H_ */