upnpharvester/common/cmsqlwrapper/inc/mcmsqlmain.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpharvester/common/cmsqlwrapper/inc/mcmsqlmain.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,249 @@
+/*
+* Copyright (c) 2008 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:      Main class in the SQL wrapper component
+*
+*/
+
+
+
+
+
+
+#ifndef M_MCMSQLMAIN_H
+#define M_MCMSQLMAIN_H
+
+#include <e32base.h>
+#include <badesca.h>
+#include "cmcommon.h"
+#include "cmcommontypes.h"  
+            
+/* Forward declarations. */
+class RFs;
+class CCmSqlDbMaintenance;
+class CCmSqlConnection;
+class CCmSqlDbClause;
+class CCmBaseListItem;
+class CCmSqlBaseItem;
+class CCmFillRule;
+class CCmFillListItem;
+class CCmSqlGenericItem;
+class CCmSqlPropertyItem;
+class CCmBaseListItem;
+class CCmSqlPropertyCollector;
+
+/**
+ *  MCmSqlMain class ( Interface to sql wrapper )
+ *  Part of SQL wrapper. SQL wrapper is part of
+ *  Content manager component.
+ *
+ *  @lib cmsqlwrapper.lib
+ *
+ *  @since S60 5.1
+ */
+class MCmSqlMain
+    {
+public:
+
+    /**
+     * Canceling operation
+     *
+     * @since S60 5.1
+     * @param None
+     * @return None
+     */
+    virtual void CancelAsyncOperation() = 0;
+
+    /**
+     * Setting media server id
+     *
+     * @since S60 5.1     
+     * @param aId, id to be used
+     * @return None
+     */ 
+    virtual void SetMsId( TUint aId ) = 0;
+
+    /**
+     * Setting mmc quota
+     *
+     * @since S60 5.1
+     * @param aQuota, quota to be used in unlimited fill lists
+     * @return None
+     */     
+    virtual void SetQuota( TInt64 aQuota ) = 0;
+
+    /**
+     * Setting dlna profile filters
+     *
+     * @since S60 5.1     
+     * @param aProfileIds, unsupported profile ids
+     * @return None
+     */    
+    virtual void SetDlnaProfileFilters( const RArray<TInt64>& aProfileIds ) = 0;
+     
+    /**
+     * Asyncronous batch add
+     *
+     * @since S60 5.1
+     * @param aItems, items to be added
+     * @param aStatus, request status to be completed
+     * @return None
+     */
+    virtual void AsyncBatchAdd( RPointerArray<CCmSqlGenericItem>& aItems, 
+        TRequestStatus& aStatus ) = 0;
+
+    /**
+     * Asyncronous batch property value add
+     *
+     * @since S60 5.1
+     * @param aItems, property items to be added
+     * @param aField, property identifier
+     * @param aStatus, request status to be completed
+     * @return None
+     */ 
+    virtual void AsyncBatchAddPropertyItems( 
+         RPointerArray<CCmSqlPropertyItem>& aItems, TCmMetadataField aField, 
+         TRequestStatus& aStatus ) = 0;
+
+    /**
+     * Syncronous property value add
+     *
+     * @since S60 5.1
+     * @param aItem, property item to be added
+     * @param aField, property identifier     
+     * @return None
+     */         
+    virtual void SyncAddPropertyItemL( CCmSqlPropertyItem& aItem, 
+        TCmMetadataField aField ) = 0;
+    
+    /**
+     * Asyncronous batch delete
+     *
+     * @since S60 5.1
+     * @param aItems, items to be deleted
+     * @param aStatus, request status to be completed
+     * @return None
+     */       
+    virtual void AsyncBatchDelete( RPointerArray<CCmSqlBaseItem>& aItems, 
+        TRequestStatus& aStatus ) = 0;
+
+    /**
+     * Asyncronous metadata delete
+     *
+     * @since S60 5.1
+     * @param aMsIds, defines where metadata is harvested
+     * @param aStatus, request status to be completed
+     * @return None
+     */ 
+    virtual void AsyncMetadataDelete( RArray<TInt>& aMsIds, 
+        TRequestStatus& aStatus ) = 0;
+
+    /**
+     * SELECT XXX oldest and delete those
+     * Delete defined amount of media items
+     *
+     * @since S60 5.1
+     * @param aType, media type identifier
+     * @param aCount, amount to be deleted
+     * @return None
+     */    
+    virtual void DeleteOldestMediaItemsL( TCmMediaType aType, 
+        TInt64 aCount ) = 0;
+
+    /**
+     * Deletes unused propertys
+     *
+     * @since S60 5.1
+     * @param None
+     * @return None
+     */     
+    virtual void DeleteUnusedPropertys( ) = 0;
+        
+    /**
+     * Asyncronous metadata query
+     *
+     * @since S60 5.1
+     * @param aItems, result array reference
+     * @param aStatus, request status to be completed
+     * @return None
+     */        
+    virtual void GetItemsL( RPointerArray<CCmSqlBaseItem>& aItems, 
+        TRequestStatus& aStatus ) = 0;
+
+    /**
+     * Asyncronous fill list item query
+     *
+     * @since S60 5.1
+     * @param aItems, result array reference
+     * @param aRule, fill list used as a query clause parameter
+     * @param aStatus, request status to be completed
+     * @return None 
+     */
+    virtual void GetFillItemsL( RPointerArray<CCmFillListItem>& aItems,
+        CCmFillRule& aRule, TRequestStatus& aStatus ) = 0;
+        
+    /**
+     * Asyncronous metadata property values query
+     *
+     * @since S60 5.1
+     * @param aItems, result array reference
+     * @param aStatus, request status to be completed     
+     * @param aField, property identifier ( e.g. artist )
+     * @param aMedia, media type identifier ( e.g. audio )
+     * @return None
+     */   
+    virtual void GetPropertyValuesL( 
+        RPointerArray<CCmSqlPropertyItem>& aItems, TRequestStatus& aStatus, 
+        TCmMetadataField aField, TCmMediaType aMedia = ECmAll ) = 0;
+
+    /**
+     * Asyncronous metadata filtered property values query
+     *
+     * @since S60 5.1
+     * @param aPropertys, result array reference
+     * @param aStatus, request status to be completed     
+     * @return None
+     */         
+    virtual void GetFilteredPropertyValuesL( 
+        CCmSqlPropertyCollector& aPropertys, TRequestStatus& aStatus ) = 0;
+
+     /**
+     * Returns amount of media items
+     *
+     * @since S60 5.1
+     * @param aCount, media amount on return
+     * @param aType, media type
+     * @return None
+     */    
+    virtual void GetMediaCountL( TInt64& aCount, TCmMediaType aType ) = 0;
+    
+     /**
+     * Returns ETrue if item exist in db
+     *
+     * @since S60 5.1
+     * @param aItem, item
+     * @param aDevId, device id
+     * @return ETrue if exists
+     */ 
+    virtual TBool ExistsL( const CCmBaseListItem& aItem, const TInt aDevId ) = 0;
+
+    /**
+     * Deletes the object
+     *
+     * @since S60 5.1
+     */
+	virtual void Close() = 0;
+	
+    };
+
+#endif //  M_MCMSQLMAIN_H