diff -r 8e7494275d3a -r 4f0867e42d62 omads/omadsextensions/adapters/mediads/inc/mediadsstore.h --- a/omads/omadsextensions/adapters/mediads/inc/mediadsstore.h Tue Aug 31 15:05:37 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2009 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: Part of SyncML Data Synchronization Plug In Adapter -* -*/ - - - -#ifndef __MEDIADATASTORE_H__ -#define __MEDIADATASTORE_H__ - -// INCLUDES -#include -#include - -#include "mediadsproviderdefs.h" -#include "changefinder.h" -#include "mediamanager.h" -#include "cmdemanager.h" - -// FORWARD DECLARATIONS -class CNSmlDataItemUidSet; -class MMPXHarvesterUtility; -class MMPXCollectionUtility; -class CMPXCollectionMediator; - - -/** -* @brief This class is derived from ECom Data Store plugin-interface (CSmlDataStore). -* It performs the actual synchronization commands, which are received from -* the DS engine. -*/ -class CMediaDsDataStore : public CSmlDataStore, - public MMediaManagerObserver, - public MMdEManagerObserver - { -public: - - /** - * Constructor - * - * @return CMediaDsDataStore* instance. - */ - static CMediaDsDataStore* NewLC( RFs& aFs ); - - /** - * Destructor - */ - virtual ~CMediaDsDataStore(); - -protected: - - // Virtual functionality from CSmlDataStore, for comments see the CSmlDataStore header file - virtual void DoOpenL(const TDesC& aStoreName, MSmlSyncRelationship& aContext, TRequestStatus& aStatus); - virtual void DoCancelRequest(); - virtual const TDesC& DoStoreName() const; - virtual void DoBeginTransactionL(); - virtual void DoCommitTransactionL(TRequestStatus& aStatus); - virtual void DoRevertTransaction(TRequestStatus& aStatus); - virtual void DoBeginBatchL(); - virtual void DoCommitBatchL(RArray& aResultArray, TRequestStatus& aStatus); - virtual void DoCancelBatch(); - virtual void DoSetRemoteStoreFormatL(const CSmlDataStoreFormat& aServerDataStoreFormat); - virtual void DoSetRemoteMaxObjectSize(TInt aServerMaxObjectSize); - virtual TInt DoMaxObjectSize() const; - virtual void DoOpenItemL(TSmlDbItemUid aUid, TBool& aFieldChange, TInt& aSize, - TSmlDbItemUid& aParent, TDes8& aMimeType, TDes8& aMimeVer, TRequestStatus& aStatus); - virtual void DoCreateItemL(TSmlDbItemUid& aUid, TInt aSize, TSmlDbItemUid aParent, - const TDesC8& aMimeType, const TDesC8& aMimeVer, TRequestStatus& aStatus); - virtual void DoReplaceItemL(TSmlDbItemUid aUid, TInt aSize, TSmlDbItemUid aParent, - TBool aFieldChange, TRequestStatus& aStatus); - virtual void DoReadItemL(TDes8& aBuffer); - virtual void DoWriteItemL(const TDesC8& aData); - virtual void DoCommitItemL(TRequestStatus& aStatus); - virtual void DoCloseItem(); - virtual void DoMoveItemL(TSmlDbItemUid aUid, TSmlDbItemUid aNewParent, TRequestStatus& aStatus); - virtual void DoDeleteItemL(TSmlDbItemUid aUid, TRequestStatus& aStatus); - virtual void DoSoftDeleteItemL(TSmlDbItemUid aUid, TRequestStatus& aStatus); - virtual void DoDeleteAllItemsL(TRequestStatus& aStatus); - virtual TBool DoHasSyncHistory() const; - virtual const MSmlDataItemUidSet& DoAddedItems() const; - virtual const MSmlDataItemUidSet& DoDeletedItems() const; - virtual const MSmlDataItemUidSet& DoSoftDeletedItems() const; - virtual const MSmlDataItemUidSet& DoModifiedItems() const; - virtual const MSmlDataItemUidSet& DoMovedItems() const; - virtual void DoResetChangeInfoL(TRequestStatus& aStatus); - virtual void DoCommitChangeInfoL(TRequestStatus& aStatus, const MSmlDataItemUidSet& aItems); - virtual void DoCommitChangeInfoL(TRequestStatus& aStatus); - -protected: // from MMPXCollectionObserver - void HandleCollectionMessage(CMPXMessage* aMsg, TInt /*aErr*/) ; - void HandleOpenL(const CMPXMedia& aEntries, - TInt aIndex,TBool aComplete,TInt aError); - void HandleOpenL(const CMPXCollectionPlaylist& aPlaylist,TInt aError); - void HandleCommandComplete(CMPXCommand* /*aCommandResult*/, - TInt /*aError*/); - void HandleCollectionMediaL(const CMPXMedia& aMedia, - TInt aError); - // from MMediaManagerObserver - void RegisterAllPlayListsCompleted( TInt aError ); - void RegisterAllSongsCompleted( TInt aError ); - -protected: // from MMdEManagerObserver - void AlbumsReaded( TInt aError ); - void AlbumReplaced( TInt aError ); - -private: - - /** - * C++ Constructor. - */ - CMediaDsDataStore( RFs& aFs ); - - /** - * 2nd-phase Constructor. - * - * @param aMsvSession IN: a session handle to message store - */ - void ConstructL(); - - /** - * Registers snapshot to ChangeFinder. - */ - void RegisterSnapshotL(); - - void RegisterFoldersL( CSnapshotArray& aItemArray ); - - void FinalizeOpenStore(); - - inline TInt MapSyncIdToAlbumId( TSmlDbItemUid aSyncId ); - inline TSmlDbItemUid MapAlbumIdToSyncId( TInt aAlbumId ); - -private: // Data members - - - enum TState - { - EClosed = 0, - EOpening, - EOpenAndWaiting, - EReplace, - ECreatePlaylist - }; - - /** - * The state of the plugin. - */ - TState iCurrentState; - - /** - * A flag indicating the existence of synchronization history. - */ - TBool iHasHistory; - - /** - * Key that is used in sorting snapshot. - */ - const TKeyArrayFix iKey; - - /** - * Change finder, used to determine db modifications. - */ - CChangeFinder* iChangeFinder; - - /** - * The location for temporary data - */ - CBufFlat* iDataBuffer; - - /** - * Current read position at the data chunk from MMS engine - */ - TInt iReadPosition; - - /** - * Indicates wheter this was only status update - */ - TInt iWrittenDataLength; - - /** - * Stores the currently active message id. - */ - TSmlDbItemUid iCurrentId; - - /** - * Pointer to the variable, receiving the created Uid. - */ - TSmlDbItemUid* iCreatedUid; - - /** - * Stores the parent id of currently active message. - */ - TSmlDbItemUid iParentId; - - /** - * Used to get asynchronous return values. - */ - TRequestStatus* iCallerStatus; - - /** - * Used to store new items. - */ - CNSmlDataItemUidSet* iNewItems; - - /** - * Used to store deleted items. - */ - CNSmlDataItemUidSet* iDeletedItems; - - /** - * Used to store updated items. - */ - CNSmlDataItemUidSet* iUpdatedItems; - - /** - * Used to store moved items. - */ - CNSmlDataItemUidSet* iMovedItems; - - /** - * Used to store soft-deleted items (not supported). - */ - CNSmlDataItemUidSet* iSoftDeletedItems; - - /** - * Used to manage playlists and songs. - */ - CMediaManager* iMediaManager; - TBool iMediaManagerReady; - - /** - * Used to manage photo albums. - */ - CMdEManager* iMdEManager; - TBool iMdEManagerReady; - - TInt iError; - - CMD5* iHasher; - - RFs& iFs; - - CSnapshotArray* iSnapshot; - TSnapshotItem iItemInReplacement; - }; - -#endif // __MEDIADATASTORE_H__