homesync/contentmanager/cmserver/cmfillmanager/inc/cmfmfillrulefilleddatamngr.h
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/homesync/contentmanager/cmserver/cmfillmanager/inc/cmfmfillrulefilleddatamngr.h	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,648 +0,0 @@
-/*
-* 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:  Fill rule and filled data managing
-*  Version     : %version: tr1ido#8 % << Don't touch!
-*
-*/
-
-
-
-#ifndef __CMFMFILLLIST_H
-#define __CMFMFILLLIST_H
-
-#include <e32base.h>
-#include <f32file.h>
-#include "cmcommontypes.h"
-#include "cmcommon.h"
-#include "cmfmcommon.h"
-
-// Forward declarations
-class MCmSqlMain;
-class CCmDmMain;
-class CCmFillRule;
-class CCmFillListItem;
-class CCmFillRuleContainer;
-class CCmSqlPropertyItem;
-class CCmSqlPropertyContainer;
-class CCmFmAo;
-class MCmFmFillRuleObserver;
-class CCmSqlPropertyCollector;
-             
- /**
-  *  Class processes selected fill rules. Uses Database Manager and 
-  *  Sqlite wrapper API to retrieve wanted metadata. Fill service is 
-  *  started using processed metadata items. 
-  *
-  *  @lib cmfillmanager.lib
-  *
-  *  @since S60 5.1
-  */
-NONSHARABLE_CLASS( CCmFmFillRuleFilledDataMngr ): public CActive
-    {
-
-private: // enumerations
-
-    // Metadata processing states
-    enum TCmFmMetadaProcessingState
-        {
-        ECmFmIdle            = 0,
-        ECmFmLoadingMetadata,
-        ECmFmLoadingPropertys,
-        ECmFmDeletingMetadata,
-        ECmFmLoadingProfileIds
-        };         
-            
-public:
-       
-    /**
-     * Two-phased constructor.
-     *
-     * @since S60 5.1
-     * @param aObserver, observer for metadata processing
-     * @param aDBMngr, database manager
-     * @param aItems, items pointers array
-     * @return  pointer to CCmFmFillRuleFilledDataMngr class
-     */
-    static CCmFmFillRuleFilledDataMngr* NewL(
-        MCmFmFillRuleObserver* aObserver, CCmDmMain* aDBMngr,
-        RPointerArray<CCmFillListItem>& aItems );
-    
-    /**
-     * Two-phased constructor.
-     *
-     * @since S60 5.1
-     * @param aObserver, observer for metadata processing
-     * @param aDBMngr, database manager
-     * @param aItems, items pointers array
-     * @return  pointer to CCmFmFillRuleFilledDataMngr class
-     */
-    static CCmFmFillRuleFilledDataMngr* NewLC(
-        MCmFmFillRuleObserver* aObserver, CCmDmMain* aDBMngr,
-        RPointerArray<CCmFillListItem>& aItems );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CCmFmFillRuleFilledDataMngr();
-
-public: 
-
-    /**
-     * Notified when asyncronous operation is completed
-     *
-     * @since S60 5.1
-     * @param aStatus, completion status
-     * @return None
-     */ 
-    void OperationCompletedL( TInt aStatus );
-
-   /**
-     * Loads profile ids from database
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */ 
-    void LoadProfileIdsL();
-        
-    /**
-     * Starting fill rule pre-processing
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void PreprocessListsL();
-    
-    /**
-     * Starting fill rule processing
-     *
-     * @since S60 5.1
-     * @param aFillListName, name of the list
-     * @return None
-     */    
-    void PreProcessListL( const TDesC8& aFillListName );
-    
-    /**
-     * Provides metadata column item list
-     *
-     * @since S60 5.1
-     * @param aType, metadata field identifier
-     * @param aMedia, media type identifier
-     * @param aPropertys, property container reference
-     * @return  None
-     */
-    void GetColItemsL( TCmMetadataField aType, 
-        TCmMediaType aMedia, CCmSqlPropertyContainer& aPropertys );   
-
-    /**
-     * Provides metadata items list
-     *
-     * @since S60 5.1
-     * @param aPropertys, property collector reference
-     * @return  None
-     */    
-    void GetMetadataItemsL( CCmSqlPropertyCollector& aPropertys );
-    
-    /**
-     * Update fill list item priorities and reference values
-     *
-     * @since S60 5.1
-     * @param None
-     * @return  None
-     */
-    void UpdatePriorities();
-
-    /**
-     * Do update fill list item reference ids
-     *
-     * @since S60 5.1
-     * @param None
-     * @return  None
-     */
-    void DoUpdateReferenceIdsL();
-
-    /**
-     * Delete metadata from unselected servers
-     *
-     * @since S60 5.1
-     * @param None
-     * @return  None
-     */ 
-    void DeleteMetadataL();
-                
-    /**
-     * Sets memory card quota to wrapper
-     *
-     * @since S60 5.1
-     * @param aQuota, fill quota
-     * @return  None
-     */    
-    void SetMemoryCardQuota( TInt64 aQuota );
-    
-    /**
-     * Canceling operations
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void CancelOperation();
-    
-    /**
-     * Updating transfer history
-     *
-     * @since S60 5.1
-     * @param aInterval, used time
-     * @param aDataAmount, amount of transferred data
-     * @param aServerId, server from where data transferred
-     * @return  None
-     */
-    void UpdateTransferHistoryData( TInt64 aInterval,
-                                    TInt64 aDataAmount,
-                                    TUint8 aServerId );
-
-    /**
-     * Loads wanted items from the db
-     *
-     * @since S60 5.1
-     * @param None
-     * @return  None
-     */                            
-    void GetFillItemsL();
-
-    /**
-     * Loads to be deleted items from the db
-     *
-     * @since S60 5.1
-     * @param aArray, array of to be deleted items
-     * @return  None
-     */        
-    void GetToBeDeletedL( RPointerArray<CCmFillListItem>& aArray );
-
-    /**
-     * Updates listed items into db
-     *
-     * @since S60 5.1
-     * @param aCancel, if this opration is called by cancel harvest
-     * @return  None
-     */       
-    void UpdateFillItems( TBool aCancel = EFalse );
-
-    /**
-     * Updates listed items into db
-     *
-     * @since S60 5.1     
-     * @param aArray, array of to be deleted items
-     * @return  None
-     */        
-    void UpdateToBeDeleted( RPointerArray<CCmFillListItem>& aArray );
-
-    /**
-     * Loads right Uuid 
-     *
-     * @since S60 5.1
-     * @param aUuid, contains uuid on return
-     * @param aId, id of the wanted uuid
-     * @return error code
-     */        
-    TInt GetUuidL( HBufC8*& aUuid, TUint8 aId );
-    
-   /**
-     * Resets allocated data
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */     
-    void ResetData();
-        
-   /**
-     * Calculating transfer history time
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */        
-    void CalculateAvgTransferTimeL();
-    
-   /**
-     * Publishes transfer history time estimate
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void SendAvgTransferTime();
-    
-    /**
-     * Returns media servers db id
-     *
-     * @since S60 5.1
-     * @param aUuid, media server's uuids
-     * @return database id
-     */     
-    TInt64 GetMediaServerIdL( const TDesC8& aUuid );            
-                                    
-private:
-
-    /**
-     * Do update fill list item priorities
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void DoUpdatePrioritiesL();
-        
-    /**
-     * Loading all selected fill rules
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */        
-    void LoadSelectedFillRulesL();
-
-    /**
-     * Loading all fill rules
-     *
-     * @since S60 5.1
-     * @param None
-     * @return Fill rule container
-     */ 
-    CCmFillRuleContainer* LoadAllFillRulesL();
-    
-    /**
-     * Loads defined fill list
-     *
-     * @since S60 5.1
-     * @param aFillListName, name of the list
-     * @return None
-     */        
-    void LoadRuleL( const TDesC8& aFillListName );
-    
-    /**
-     * Updates fill list item priorities up to date
-     *
-     * @since S60 5.1
-     * @param aContainer, container containing all rules
-     * @return None
-     */     
-    TInt UpdateListItemPriorities( CCmFillRuleContainer* aContainer );
-            
-    /**
-     * Initializing metadata find
-     *
-     * @since S60 5.1
-     * @param aFillRule, fill list
-     * @return None
-     */                        
-    void LoadMetadataL( CCmFillRule* aFillRule );
-    
-    /**
-     * Processing possible fill file list duplicates 
-     * and adds reference values if needed
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */        
-    void ProcessReferenceValuesL();
-
-    /**
-     * Processes possible fill file list duplicates 
-     * and adds reference values if needed
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */        
-    void DoProcessReferenceValuesL();
-    
-    /**
-     * Processing possible fill file list duplicates,
-     * removes duplicates appeared in new sql query
-     * If same item is twice in item list, 
-     * new item is removed
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void ProcessDuplicates();
-    
-    /**
-     * Selects fill list files which are with defined rule id
-     *
-     * @since S60 5.1
-     * @param aList, list to be filled
-     * @param aId, fill list id
-     * @return None
-     */        
-    void SelectFillListFiles( RArray<TInt>& aList, TUint8 aId );
-    
-    /**
-     * Updates status values of the fill list files
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void ProcessFileStatusValuesL();
-    
-     /**
-     * Updatas the fill file's ids.
-     *
-     * @since S60 5.1
-     * @param aDelIds,array to store files's id 
-     * @param aIndex, Index of fill items
-     * @param aRealCount, count of fill items
-     * @param aRealSize, size of fill items
-     * @return None
-     */ 
-     void ProcessFileSizeAndCount( RArray<TInt>& aDelIds, TInt aIndex, 
-                            TInt64& aRealCount, TInt64& aRealSize );
-
-    /**
-     * Loads all fill file items
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void LoadAllFillItemsL();
-    
-    /**
-     * Delete duplicated fill items and adjust array
-     *
-     * @since S60 5.1
-     * @param aIndex, Index array of fill items
-     */     
-	void DoDeleteProcess( TInt aIndex );
-
-   /**
-     * Defines unsupported dlna profile ids
-     *
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */ 
-    void DefineAndSetDlnaProfileIdFiltersL();   
-
-   /**
-     * Completes request
-     *
-     * @since S60 5.1
-     * @param aStatus, defined id for the completing 
-     * @return None
-     */     
-    void CompleteRequest( TCmFmFillRuleProcessing aStatus );
- 
-    /**
-     * Starts asyncronous operartion observer
-     * i.e. creates active object
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void StartObserverL();
-
-    /**
-     * Creates metadata cache wrapper
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */    
-    void CreateWrapperL();
-    
-    /**
-     * Deletes metadata cache wrapper
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */ 
-    void DeleteWrapper();     
-
-    /**
-     * Processes fill lists
-     * @since S60 5.1
-     * @param None
-     * @return None
-     */ 
-    void CheckFillListsL();
-    
-    /**
-     * Deletes hash codes
-     * @since S60 5.2
-     * @param None
-     * @return None
-     */ 
-    void DeleteHashCodesL();
-    
-protected: 
-
-// Functions from base class CActive
-
-    /**
-     * From CActive
-     * See base class definition
-     */
-    void RunL();
-
-    /**
-     * From CActive
-     * See base class definition
-     */
-    void DoCancel();
-
-    /**
-     * From CActive
-     * See base class definition
-     */
-    virtual TInt RunError(TInt aError);
-        
-private:
-
-    /**
-     * Performs the first phase of two phase construction.
-     *
-     * @since S60 5.1
-     * @param aObserver, Fill list observer
-     * @param aDBMngr, database manager
-     * @param aItems, array of list items
-     */
-    CCmFmFillRuleFilledDataMngr( MCmFmFillRuleObserver* aObserver, 
-        CCmDmMain* aDBMngr, RPointerArray<CCmFillListItem>& aItems );
-
-    /**
-     * Performs the second phase construction.
-     */
-    void ConstructL();
-    
-
-private:
-
-    /**
-     * Metadata cache wrapper
-     */
-    MCmSqlMain* iWrapper;                           // owned
-    
-    /**
-     * Active object in use of sql wrapper
-     */
-    CCmFmAo* iAo;                                   // owned
-    
-    /**
-     * Pointer to observer class
-     */
-    MCmFmFillRuleObserver* iObserver;               // not owned
-    
-    /**
-     * Pointer to database manager
-     */
-    CCmDmMain* iDBManager;                          // not owned
-    
-    /**
-     * All fill list items
-     */
-    RPointerArray<CCmFillListItem>& iItems;         // not owned
-
-    /**
-     * fill list items for updating to DB
-     */
-    RPointerArray<CCmFillListItem> iUpdateItems;    //owned
-    
-    /**
-     * Property values loaded from the cache
-     */
-    RPointerArray<CCmSqlPropertyItem> iPropertys;   // owned
-    
-    /**
-     * Property container referencing got from client
-     */
-    CCmSqlPropertyContainer* iPropertyContainer;    // not owned
-
-    /**
-     * Property container referencing got from client
-     */
-    CCmSqlPropertyCollector* iPropertyCollector;    // not owned           
-        
-    /**
-     * Rule array
-     */
-    RPointerArray<CCmFillRule> iRuleArray;
-    
-    /**
-     * Item ids on the list
-     */    
-    RArray<TInt> iFileIds;
-    
-    /**
-     * State of the metadata processing
-     */ 
-    TCmFmMetadaProcessingState iProcessingState;
-    
-    /**
-     * Count of new metadata items
-     */ 
-    TInt iNewItemCount;
-    
-    /**
-     * Count of all metadata items
-     */
-    TInt iAllItemCount;
-    
-    /**
-     * Start time of list processing
-     */
-    TTime iQueryStart;
-    /**
-     * End time of list processing
-     */    
-    TTime iQueryFinished;
-    
-    /**
-     * Total transfer time estimate
-     */
-    TCmProgressInfo iTransferInfo;
-    
-    /**
-     * Container for fill lists
-     */
-    CCmFillRuleContainer* iContainer;               // owned
-
-    /**
-     * Server list whose metadata will be deleted
-     */    
-    RArray<TInt> iMetadataServersToBeDeleted;
-    
-    /**
-     * Profile filters
-     */    
-    RArray<TInt64> iFilteredProfiles;
-    
-    /**
-     * File Server session
-     */
-    RFs iFs;
-    
-    /**
-     * Old item ids on the list
-     */    
-    RArray<TInt> iOldIds;
-   
-    };
-
-#endif //  __CMFMFILLLIST_H