--- /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_ */