diff -r 6369bfd1b60d -r 08b5eae9f9ff homesync/contentmanager/cmserver/cmfillmanager/inc/cmfmfillrulefilleddatamngr.h --- 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 -#include -#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& 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& 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& 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& 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& 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& 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& 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& iItems; // not owned - - /** - * fill list items for updating to DB - */ - RPointerArray iUpdateItems; //owned - - /** - * Property values loaded from the cache - */ - RPointerArray 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 iRuleArray; - - /** - * Item ids on the list - */ - RArray 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 iMetadataServersToBeDeleted; - - /** - * Profile filters - */ - RArray iFilteredProfiles; - - /** - * File Server session - */ - RFs iFs; - - /** - * Old item ids on the list - */ - RArray iOldIds; - - }; - -#endif // __CMFMFILLLIST_H