upnpharvester/common/dbmanager/inc/cmdmmain.h
changeset 0 7f85d04be362
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpharvester/common/dbmanager/inc/cmdmmain.h	Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,952 @@
+/*
+* 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 Database manager component
+*
+*/
+
+
+
+
+
+
+#ifndef C_CMDMMAIN_H
+#define C_CMDMMAIN_H
+
+#include <e32base.h>
+#include <badesca.h>
+#include "cmcommon.h"
+#include "cmcommontypes.h"
+
+// Operation types
+enum TCMQueryCmdType
+    {
+    EFillRuleQuery = 1,
+    EMediaServerInfoQyery,
+    EMediaServerIdQuery,
+    EMediaServerUDNQuery,
+    EMediaServersAllQuery,
+    EHashValueQuery,
+    EFilledQuery,
+    EStoredQuery,
+    EFilledRowQuery,
+    EStoredRowQuery,
+    ESelectedFillRuleQuery,
+    EFillRuleNamesQuery,
+    EStoreRuleQuery,
+    EStoreRuleNamesQuery,
+    ESelectedStoreRuleQuery,
+    ETransferHistoryQuery,
+    EFillFilesQuery,
+    EStoreFilesQuery,
+    EAllFillFilesQuery,
+    EAllStoreFilesQuery,
+    EFilledLowPriorityQuery,
+    EAllFillFilesStatusQuery,
+    EAllStoreFilesStatusQuery,
+    EDeletedFillFilesQuery,
+    EDrivesQuery
+    };    
+            
+/* Forward declarations. */
+class CCmDmSqlDbMaintenance;
+class CCmDmSQLiteConnection;
+class CCmFillRule;
+class CCmFillRuleContainer;
+class CCmMediaServerFull;
+class CCmStoreRule;
+class CCmBaseListItem;
+class CCmFillListItem;
+class CCmStoreListItem;
+class CCmSearchResponseHash;
+class CCmDriveInfo;
+
+
+/**
+ *  CCmDmMain class
+ *  Part of Database manager. Database manager is part of
+ *  Content manager component.
+ *
+ *  @lib cmdatabasemanager.lib
+ *
+ *  @since S60 5.1
+ */
+class CCmDmMain : public CBase
+    {
+
+public:
+
+    /**
+     * Two-phased constructor.
+     */
+    IMPORT_C static CCmDmMain* NewL();
+    
+    /**
+     * Two-phased constructor.
+     */
+    IMPORT_C static CCmDmMain* NewLC();
+
+    /**
+     * Destructor.
+     */
+    IMPORT_C virtual ~CCmDmMain();
+
+    /**
+     * Prepares query command
+     *
+     * @since S60 5.1
+     * @param aType type of query
+     * @return None
+     */        
+    IMPORT_C void PrepareQueryCmdL( TCMQueryCmdType aType );
+        
+    /**
+     * Query fill rule
+     *
+     * @since S60 5.1
+     * @param aFillRule
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt QueryFillRuleL( CCmFillRule* aFillRule );
+
+    /**
+     * Query names of selected fill rules
+     *
+     * @since S60 5.1
+     * @param aNames
+     * @param aSelected
+     * @return None 
+     */        
+    IMPORT_C void QuerySelectedFillRuleNamesL( 
+        RPointerArray<HBufC8>& aNames, 
+        TInt aSelected );
+
+    /**
+     * Query names of fill rules
+     *
+     * @since S60 5.1
+     * @param aNames, on return fill rule names
+     * @return None 
+     */    
+    IMPORT_C void QueryFillRuleNamesL( RPointerArray<HBufC8>& aNames );
+    
+    /**
+     * Query store rule
+     *
+     * @since S60 5.1
+     * @param aStoreRule, store list
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryStoreRuleL( CCmStoreRule* aStoreRule );
+    
+    /**
+     * Query store rule names
+     *
+     * @since S60 5.1
+     * @param aNames, list names
+     * @return None
+     */    
+    IMPORT_C void QueryStoreRuleNamesL( RPointerArray<HBufC8>& aNames );
+
+    /**
+     * Query selected store rule names
+     *
+     * @since S60 5.1
+     * @param aNames, list names
+     * @param aSelected, selection status
+     * @return None
+     */        
+    IMPORT_C void QuerySelectedStoreRuleNamesL( 
+        RPointerArray<HBufC8>& aNames,
+        TInt aSelected );
+
+    /**
+     * Query media server info
+     *
+     * @since S60 5.1
+     * @param aMediaServer, mediaserver
+     * @return TInt, Error code 
+     */            
+    IMPORT_C TInt QueryMediaServerL( CCmMediaServerFull* aMediaServer );
+    
+    /**
+     * Query media server ids
+     *
+     * @since S60 5.1
+     * @param aUDN, server UDN
+     * @return TInt64, Media server id 
+     */        
+    IMPORT_C TInt64 QueryMediaServerId( const TDesC8& aUDN );
+
+    /**
+     * Query media server udn
+     *
+     * @since S60 5.1
+     * @param aUDN, server UDN
+     * @param aId, server id
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryMediaServerUdn( HBufC8*& aUdn, const TInt32 aId );
+
+    /**
+     * Query All Media servers
+     *
+     * @since S60 5.1
+     * @param aMediaServer, mediaserver
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt QueryAllMediaServersL( CCmMediaServerFull* aMediaServer );
+
+    /**
+     * Get media servers
+     *
+     * @since S60 5.1
+     * @param aMediaServers, mediaserver list
+     * @return None 
+     */    
+    IMPORT_C void GetMediaServersL( 
+        RPointerArray<CCmMediaServerFull>& aMediaServers );
+        
+    /**
+     * Query filled
+     *
+     * @since S60 5.1
+     * @param aDrive, drive id
+     * @param aFilled, fill list items
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt GetLowPriorityFilledFilesL( 
+        TInt aDrive, 
+        RPointerArray<CCmFillListItem>& aFilled );
+
+    /**
+     * Query fill file list
+     *
+     * @since S60 5.1
+     * @param aItems, fill list items
+     * @param aName, fill list name
+     * @param aStatus, list status
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryFillFileListL( 
+        RPointerArray<CCmBaseListItem>& aItems, 
+        const TDesC8& aName, 
+        TUint aStatus );
+
+    /**
+     * Query fill file list
+     *
+     * @since S60 5.1
+     * @param aItems, fill list items
+     * @param aStatus, list status
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt GetAllFillFilesL( 
+        RPointerArray<CCmFillListItem>& aItems, 
+        TUint aStatus );
+        
+    /**
+     * Query store file list
+     *
+     * @since S60 5.1
+     * @param aItems, list items
+     * @param aName, list name
+     * @param aStatus, list status
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryStoreFileListL( 
+        RPointerArray<CCmBaseListItem>& aItems, 
+        const TDesC8& aName, 
+        TUint aStatus );
+
+    /**
+     * Query store file list
+     *
+     * @since S60 5.1
+     * @param aItems, list items
+     * @param aStatus, list status
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt GetAllStoreFilesL( 
+        RPointerArray<CCmStoreListItem>& aItems, 
+        TUint aStatus );
+        
+    /**
+     * Query all fill files
+     * @since S60 5.1
+     * @param aItems
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryAllFillFilesL( 
+        RPointerArray<CCmFillListItem>& aItems );
+
+    /**
+     * Query all store files
+     *
+     * @since S60 5.1
+     * @param aItems, list items
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt QueryAllStoreFilesL( 
+        RPointerArray<CCmStoreListItem>& aItems );
+    
+    /**
+     * Query all stored ( use aFile as a query parameter )
+     *
+     * @since S60 5.1
+     * @param aFiles, stored files
+     * @param aUDN, server udn
+     * @param aAmount, amount of files
+     * @return None
+     */        
+    IMPORT_C void QueryStoredRowL( 
+        RPointerArray<HBufC16>& aFiles, 
+        const TDesC8& aUDN, 
+        TInt aAmount );    
+
+    /**
+     * Query transfer history
+     *
+     * @since S60 5.1
+     * @param aUdn, server udn
+     * @param aDownloadData, download data size
+     * @param aUploadData, upload data size
+     * @param aDownloadTime, download time
+     * @param aUploadTime, upload time 
+     * @return None 
+     */        
+    IMPORT_C void QueryTransferHistory( 
+        const TDesC8& aUdn, 
+        TInt64& aDownloadData,
+        TInt64& aUploadData, 
+        TInt64& aDownloadTime, 
+        TInt64& aUploadTime );
+
+    /**
+     * Query deleted items list
+     *
+     * @since S60 5.1
+     * @param aUdn, server udn
+     * @param aArray, array of deleted items
+     * @param aStatus, status info
+     * @return None 
+     */  
+    IMPORT_C void QueryDeletedItemsListsL( 
+        RPointerArray<CCmBaseListItem>& aArray, 
+        TUint aStatus );
+        
+    /**
+     * Query drives
+     *
+     * @since S60 5.1
+     * @param aDrives, drive array
+     * @return None 
+     */     
+    IMPORT_C void QueryDrivesL( RPointerArray<CCmDriveInfo>& aDrives );   
+    
+    /**
+     * Avarage image shrinking time 
+     *
+     * @since S60 5.1
+     * @return TInt, Avarage image shrinking time in millisecond 
+     */        
+    IMPORT_C TInt GetAvgImageShrinkTime();
+
+    /**
+     * Get list name using list id 
+     *
+     * @since S60 5.1
+     * @param aListName, name of the fill list
+     * @param aListId, id of the named list
+     * @return None
+     */     
+    IMPORT_C void GetFillListNameL( 
+        HBufC8*& aListName, 
+        const TInt64 aListId );
+    
+    /**
+     * Set fill file list
+     *
+     * @since S60 5.1
+     * @param aItems, fill list items
+     * @return TInt Error code 
+     */    
+    IMPORT_C TInt SetFillFiles( RPointerArray<CCmFillListItem>& aItems );
+
+    /**
+     * Set store file list
+     *
+     * @since S60 5.1
+     * @param aItems, store list items
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt SetStoreFilesL( RPointerArray<CCmStoreListItem>& aItems );
+    
+    /**
+     * Adds one item into store file list
+     *
+     * @since S60 5.1
+     * @param aItem, store list item
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt AddStoreFile( CCmStoreListItem& aItem );        
+    
+    /**
+     * Add stored item
+     *
+     * @since S60 5.1
+     * @param aFileName, file name
+     * @param aUDN, server udn
+     * @param aTimeStamp, timestamp
+     * @return TInt, Error code 
+     */     
+    IMPORT_C TInt AddStoredL( 
+        const TDesC& aFileName, 
+        const TDesC8& aUDN, 
+        TTime aTimeStamp );   
+    
+    /**
+     * Add fill rule
+     *
+     * @since S60 5.1
+     * @param aFillRule, fill list
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt AddFillRuleL( CCmFillRule* aFillRule );
+    
+    /**
+     * Add store rule
+     *
+     * @since S60 5.1
+     * @param aStoreRule, store list
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt AddStoreRuleL( CCmStoreRule* aStoreRule );    
+    
+    /**
+     * Add Media server
+     *
+     * @since S60 5.1
+     * @param aMediaServer, media server
+     * @return TInt, Error code 
+     */
+    IMPORT_C TInt AddMediaServerL( CCmMediaServerFull* aMediaServer );
+    
+    /**
+     * Add hash value
+     *
+     * @since S60 5.1
+     * @param aMediaServerId, media server id
+     * @param aHashValue, hash value
+     * @return TInt, Error code 
+     */
+    IMPORT_C TInt AddHashValue( TInt64 aMediaServerId, 
+                                CCmSearchResponseHash* aHashValue );
+
+    /**
+     * Query hash values
+     *
+     * @since S60 5.1
+     * @param aMediaServerId, media server id
+     * @param aHashValues, hash value
+     * @return TInt, Error code 
+     */                                       
+    IMPORT_C TInt QueryHashValuesL( TInt aMediaServer, 
+        RPointerArray<CCmSearchResponseHash>& aHashValues );                                       
+
+    /**
+     * Sets is active status of the media server
+     *
+     * @since S60 5.1
+     * @param aServers, mediaservers
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt SetMediaServersL( 
+        RPointerArray<CCmMediaServerFull>& aServers );    
+
+    /**
+     * Sets last syncs time
+     *
+     * @since S60 5.1
+     * @param None
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt SetSyncTime();
+
+    /**
+     * Gets last syncs time
+     *
+     * @since S60 5.1
+     * @param aTime last sync time
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt GetSyncTime( TTime& aTime );
+    
+    /**
+     * Sets Progress info
+     * @since S60 5.1
+     *
+     * @param aTransferred how many files transferred
+     * @param aTotalCount how many will be trasferred
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt SetProgressInfo( TInt aTransferred, TInt aTotalCount );
+
+    /**
+     * Gets Progress info
+     *
+     * @since S60 5.1
+     * @param aTransferred how many files transferred
+     * @param aTotalCount how many will be trasferred
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt GetProgressInfo( 
+        TInt& aTransferred, 
+        TInt& aTotalCount );    
+
+    /**
+     * Sets Drives info
+     *
+     * @since S60 5.1
+     * @param aDrives, drives to be set into database
+     * @return None
+     */ 
+    IMPORT_C void SetDrivesL( RPointerArray<CCmDriveInfo>& aDrives );
+        
+    /**
+     * Remove media server info from database
+     *
+     * @since S60 5.1
+     * @param aUDN, server udn
+     * @return TInt, Error code 
+     */         
+    IMPORT_C TInt DeleteMediaServer( const TDesC8& aUDN );
+
+    /**
+     * Remove fill rule from database
+     *
+     * @since S60 5.1
+     * @param aName, fill list name
+     * @return TInt, Error code 
+     */         
+    IMPORT_C TInt DeleteFillRuleByName( const TDesC8& aName );
+    
+    /**
+     * Delete all fill rules
+     *
+     * @since S60 5.1
+     * @param None
+     * @return TInt, Error code 
+     */         
+    IMPORT_C TInt DeleteAllFillRules();
+
+    /**
+     * Delete all store rules
+     *
+     * @since S60 5.1
+     * @param None
+     * @return Error code 
+     */        
+    IMPORT_C TInt DeleteAllStoreRules();
+
+    /**
+     * Deletes all fill files
+     *
+     * @since S60 5.1
+     * @param None
+     * @return Error code 
+     */        
+    IMPORT_C TInt DeleteFillFiles();
+
+    /**
+     * Deletes all store files
+     *
+     * @since S60 5.1
+     * @param None
+     * @return TInt, Error code 
+     */        
+    IMPORT_C TInt DeleteStoreFiles();
+
+    /**
+     * Delete deleted items 
+     *
+     * @since S60 5.1
+     * @param None
+     * @return None
+     */     
+    IMPORT_C void DeleteDeletedItemsL();
+
+    /**
+     * Delete items by FillListId
+     *
+     * @since S60 5.1
+     * @param FillListId, fill list id
+     * @return TInt, Error code
+     */
+    IMPORT_C TInt DeleteItemsByFillListId( TInt aFillListId );
+
+    /**
+     * Delete deleted media servers
+     *
+     * @since S60 5.1
+     * @param None
+     * @return None
+     */      
+    IMPORT_C void DeleteDeletedMediaServersL();
+    
+    /**
+    * Deletes hash values
+    *
+    * @since S60 5.1
+    * @param aMediaServerId, media server id
+    * @param aSearchIndex, search index
+    * @return None
+    */   
+    IMPORT_C void DeleteHashValuesL( const TInt aMediaserverId,
+            const TInt aSearchIndex );
+
+    /**
+     * Update media server info
+     *
+     * @since S60 5.1
+     * @param aMediaServer, media server
+     * @return TInt, Error code 
+     */         
+    IMPORT_C TInt UpdateMediaServerInfo( CCmMediaServerFull* aMediaServer );
+    
+    /**
+     * Update status of the fill rule ( selected or not )
+     *
+     * @since S60 5.1
+     * @param aName, list name
+     * @param aSelected, selection status
+     * @return TInt, Error code 
+     */         
+    IMPORT_C TInt UpdateFillRuleSelected( 
+        const TDesC8& aName, 
+        TInt aSelected );
+
+    /**
+     * Update Download history
+     *
+     * @since S60 5.1
+     * @param aMediaServerId, server id
+     * @param aDownloadData, download data size 
+     * @param aDownloadTime, download time
+     * @return TInt, Error code 
+     */    
+    IMPORT_C TInt UpdateDownloadHistory( 
+        TUint aMediaServerId,
+        TInt64& aDownloadData, 
+        TInt64& aDownloadTime );
+    
+    /**
+     * Update Upload history
+     *
+     * @since S60 5.1
+     * @param aMediaServerId, server id
+     * @param aUploadData, upload data size
+     * @param aUploadTime, upload time
+     * @return TInt, Error code
+     */    
+    IMPORT_C TInt UpdateUploadHistory( 
+        TUint aMediaServerId,
+        TInt64& aUploadData, 
+        TInt64& aUploadTime );
+
+    /**
+     * Update status values
+     *
+     * @since S60 5.1
+     * @param aStatusValues, status values of items
+     * @return TInt, Error code 
+     */
+    IMPORT_C TInt UpdateStatusValues( 
+        RPointerArray<CCmBaseListItem>& aStatusValues );
+        
+    /**
+     * Update fill list drive statuses
+     *
+     * @since S60 5.1
+     * @param aDrive, drive info
+     * @para aDriveSelected, if ETrue drive selected but slot changed
+     * @return None 
+     */    
+    IMPORT_C void UpdateFillListDriveStatusesL( 
+        CCmDriveInfo* aOrigDrive, 
+        CCmDriveInfo* aNewDrive, 
+        TBool aDriveSelected );     
+
+    /**
+     * Update fill list item priorities
+     *
+     * @since S60 5.1
+     * @param aContainer, fill list container 
+     * @return TInt, Error code 
+     */
+    IMPORT_C TInt UpdateFillListItemPriority( 
+        CCmFillRuleContainer* aContainer );                
+
+    /**
+     * Update fill selection state into fill file table
+     *
+     * @since S60 5.1
+     * @param aListName, fill list name
+     * @param aState, fill list status
+     * @return None
+     */
+    IMPORT_C void SetFillListStateL( 
+        const TUint aListName, 
+        TCmFillRuleStatus aState );
+
+    /**
+     *
+     * Restoring file statuses
+     * @since S60 5.1
+     * @param aItems, array of filled items
+     * @param aListName, list name
+     * @return None
+     */
+    IMPORT_C void RestoreFileStatusesL( 
+        const RPointerArray<CCmFillListItem>& aItems, 
+        const TDesC8& aListName );
+                
+    /**
+     *
+     * Increment image shrinking history info
+     *
+     * @since S60 5.1
+     * @param aImageCount, image count
+     * @param aMilliSeconds, shrinking time
+     * @return TInt, Error code 
+     */            
+    IMPORT_C TInt IncrementShrinkTimeL( 
+        TInt aImageCount, 
+        TInt aMilliSeconds );
+
+    /**
+     * Returns size of the named list
+     *
+     * @since S60 5.1
+     * @param aType, List type
+     * @param aListName, list name 
+     * @param aStatus, list status
+     * @return TInt64, Size in bytes
+     */        
+    IMPORT_C TInt64 ListSize( 
+        TCmRuleType aType, 
+        const TDesC8& aListName,
+        TUint aStatus );
+
+    /**
+     * Returns file count which are waiting to be stored
+     *
+     * @since S60 5.1
+     * @param aStatus, file status
+     * @return TInt, File count
+     */                                
+    IMPORT_C TInt StoreFileCount( TUint aStatus );
+
+    /**
+     * Returns file count which are waiting to be stored
+     *
+     * @since S60 5.1
+     * @param None
+     * @return size of the list
+     */      
+    IMPORT_C TInt StoreFileCountNoDuplicates();
+    
+    /**
+     * Returns file count which are waiting to be filled
+     *
+     * @since S60 5.1
+     * @param aStatus, file status
+     * @return TInt, File count
+     */        
+    IMPORT_C TInt FillFileCount( TUint aStatus );
+
+    /**
+     * Returns data amount filled
+     * @since S60 5.1
+     * @param aID id of fill rule
+     * @return sum of file sizes
+     */        
+    IMPORT_C TInt64 BytesFilled( 
+        TUint aID );
+
+    /**
+     * Returns data amount to be filled
+     * @since S60 5.1
+     * @param aMediaServerId, media server id
+     * @param aStatus, file status
+     * @return TInt64, sum of file sizes
+     */        
+    IMPORT_C TInt64 KBytesToBeFilled( 
+        TUint8 aMediaServerId, 
+        TUint aStatus );
+
+    /**
+     * Returns data amount to be stored
+     *
+     * @since S60 5.1
+     * @param aMediaServerId, media server id
+     * @param aStatus, file status
+     * @return TInt64, sum of file sizes
+     */        
+    IMPORT_C TInt64 KBytesToBeStored( 
+        TUint8 aMediaServerId, 
+        TUint aStatus );
+
+    /**
+     * Updates list size and approx. transfer time
+     *
+     * @since S60 5.1
+     * @param aService, contentmanager service
+     * @param aCount, item count
+     * @param aTime, transfer time in milliseconds
+     * @return TInt, error code
+     */           
+    IMPORT_C TInt UpdateTransferInfo( 
+        TCmService aService, 
+        TInt aCount, 
+        TInt aTime );      
+
+    /**
+     * Updates file status
+     *
+     * @since S60 v3.1
+     * @param aStatus, file status
+     * @param aFid, file id
+     * @param aMsId, server id
+     * @return None
+     */         
+    IMPORT_C void UpdateStoreTransferStatus( 
+        TUint aStatus,
+        TInt64 aFid, 
+        TInt64 aMsId );        
+        
+    /**
+     * Updates file status
+     *
+     * @since S60 5.1
+     * @param aStatus, file status
+     * @param aItem, fill list item
+     * @return None
+     */
+    IMPORT_C void UpdateFillTransferStatus( 
+        TUint aStatus, 
+        CCmFillListItem* aItem );
+        
+    /**
+     * Get list size and approx. transfer time
+     *
+     * @since S60 5.1
+     * @param aService, content manager service
+     * @param aCount pieces, item count
+     * @param aTime, transfer time in milliseconds
+     * @return TInt, error code
+     */            
+    IMPORT_C TInt GetTransferInfo( 
+        TCmService aService, 
+        TInt& aCount, 
+        TInt& aTime );
+
+    /**
+     * Files to be stored and included into specified list
+     *
+     * @since S60 5.1
+     * @param aListName, store list name
+     * @param aStatus, list status
+     * @param aCount, item count
+     * @return TInt, error code
+     */            
+    IMPORT_C TInt GetStoreFileCount( 
+        const TDesC8& aListName, 
+        TUint aStatus, 
+        TInt& aCount );
+             
+     /**
+     * Files to be filled and included into specified list
+     *
+     * @since S60 5.1
+     * @param aListName, fill list name
+     * @param aStatus, list status
+     * @param aCount, item count
+     * @return TInt, error code
+     */            
+    IMPORT_C TInt GetFillFileCount( 
+        const TDesC8& aListName, 
+        TUint aStatus, 
+        TInt& aCount );
+
+    /**
+     * Files to be store
+     *
+     * @since S60 5.1
+     * @param aCount, file count 
+     * @param aStatus, file status
+     * @return None
+     */
+    IMPORT_C void GetStoreFileCountNoDuplicatesL( 
+        TInt& aCount, 
+        TUint aStatus );        
+        
+     /**
+     * Sets fill list real information
+     *
+     * @since S60 5.1
+     * @param aListId, list id
+     * @param aRealCount, item count
+     * @param aRealSize, list size
+     * @return None
+     */          
+    IMPORT_C void SetFillListRealCountAndSizeL( 
+        TInt64 aListId, 
+        TInt64 aRealCount, 
+        TInt64 aRealSize );  
+
+    /**
+    * update the fill rule realsize and realcount field
+    *
+    * @since S60 5.1
+    * @return TInt, error code
+    */        
+    IMPORT_C TInt UpdateFillRuleGroupInfo();
+    
+private:
+
+    /**
+     * Performs the first phase of two phase construction.
+     */
+    CCmDmMain();
+
+    /**
+     * Performs the second phase construction.
+     */
+    void ConstructL();
+    
+
+private:
+
+    /**
+     * Pointer to SQLite connection class
+     */
+    CCmDmSQLiteConnection* iConnection;             // owned
+    
+    /**
+     * Pointer to database maintenance class
+     */
+    CCmDmSqlDbMaintenance* iMaintenance;            // owned
+    };
+
+#endif //  C_CMDMMAIN_H