diff -r e6e896426eac -r 2691f6aa1921 omads/omadsextensions/adapters/bookmark/inc/bookmarkdatastore.h --- a/omads/omadsextensions/adapters/bookmark/inc/bookmarkdatastore.h Tue Feb 02 00:02:49 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -/* -* Copyright (c) 2005-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 __BOOKMARKDATASTORE_H__ -#define __BOOKMARKDATASTORE_H__ - -#include -#include -#include - -#include -#include - -class CNSmlDataItemUidSet; -class CFavouritesItem; -class CBookmarkConversionUtil; -class RFeedsServer; -class CChangeFinder; -class TSnapshotItem; - -class CBookmarkDataStore : public CSmlDataStore, - public MFolderItemObserver, - public MFeedsServerObserver - { -private: - - CBookmarkDataStore(); - ~CBookmarkDataStore(); - -public: - - static CBookmarkDataStore* NewL(); - static CBookmarkDataStore* NewLC(); - void ConstructL(); - - // Transactions (optional) - void DoBeginTransactionL(); - void DoCommitTransactionL(TRequestStatus& aStatus); - void DoRevertTransaction(TRequestStatus& aStatus); - - // Batching (optional) - void DoBeginBatchL(); - void DoCommitBatchL(RArray& aResultArray, TRequestStatus& aStatus); - void DoCancelBatch(); - - // Opens data store asynchronously - void DoOpenL(const TDesC& aStoreName, MSmlSyncRelationship& aContext, TRequestStatus& aStatus); - // Cancels current asynchronous request - void DoCancelRequest(); - // Returns the name of open database, empty if OpenL hasn't been called - const TDesC& DoStoreName() const; - // Sets remote server data format - void DoSetRemoteStoreFormatL(const CSmlDataStoreFormat& aServerDataStoreFormat); - // Sets the remote server maximum object size - void DoSetRemoteMaxObjectSize(TInt aServerMaxObjectSize); - // Returns maximum object size, reported by remote server - TInt DoMaxObjectSize() const; - - // Opens item for reading - void DoOpenItemL(TSmlDbItemUid aUid, TBool& aFieldChange, TInt& aSize, - TSmlDbItemUid& aParent, TDes8& aMimeType, TDes8& aMimeVer, TRequestStatus& aStatus); - // Initializes new item to data store - void DoCreateItemL(TSmlDbItemUid& aUid, TInt aSize, TSmlDbItemUid aParent, - const TDesC8& aMimeType, const TDesC8& aMimeVer, TRequestStatus& aStatus); - // Initializes replace of item in data store - void DoReplaceItemL(TSmlDbItemUid aUid, TInt aSize, TSmlDbItemUid aParent, - TBool aFieldChange, TRequestStatus& aStatus); - // Reads data from opened item - void DoReadItemL(TDes8& aBuffer); - // Writes data to created or replaced item - void DoWriteItemL(const TDesC8& aData); - // Commits the created or replaced item to database - void DoCommitItemL(TRequestStatus& aStatus); - // Closes the opened item - void DoCloseItem(); - // Moves item in the database - void DoMoveItemL(TSmlDbItemUid aUid, TSmlDbItemUid aNewParent, TRequestStatus& aStatus); - // Deletes item from the database - void DoDeleteItemL(TSmlDbItemUid aUid, TRequestStatus& aStatus); - // Soft deletes item (if supported by plugin adapter), can be equal to DoDeleteItemL - void DoSoftDeleteItemL(TSmlDbItemUid aUid, TRequestStatus& aStatus); - // Deletes all items from the database - void DoDeleteAllItemsL(TRequestStatus& aStatus); - - // Returns, whether data store has history info. EFalse means slow sync - TBool DoHasSyncHistory() const; - // Returns ids of items, which are added after previous synchronization - const MSmlDataItemUidSet& DoAddedItems() const; - // Returns ids of items, which are deleted after previous synchronization - const MSmlDataItemUidSet& DoDeletedItems() const; - // Returns ids of items, which are soft-deleted after previous synchronization - const MSmlDataItemUidSet& DoSoftDeletedItems() const; - // Returns ids of items, which are modified after previous synchronization - const MSmlDataItemUidSet& DoModifiedItems() const; - // Returns ids of items, which are moved after previous synchronization - const MSmlDataItemUidSet& DoMovedItems() const; - // Resets change information of items (makes all items new from DS point of view) - void DoResetChangeInfoL(TRequestStatus& aStatus); - // Commits the changes, that are sent into the remote server - void DoCommitChangeInfoL(TRequestStatus& aStatus, const MSmlDataItemUidSet& aItems); - // Commits the changes, that are sent into the remote server - void DoCommitChangeInfoL(TRequestStatus& aStatus); - -private: // From MFolderItemObserver - void FolderItemRequestCompleted(TInt aStatus, CRequestHandler::TRequestHandlerType); - void FolderItemChanged() {}; -private: // From MFeedsServerObserver - void UpdateAllProgress(TInt, TInt ) {}; - void SettingsChanged( TInt ) {}; -private: // From MConnectionObserver - virtual void NetworkConnectionNeededL(TInt* /*aConnectionPtr*/, TInt& /*aSockSvrHandle*/, - TBool& /*aNewConn*/, TApBearerType& /*aBearerType*/){}; -private: - void DoFolderItemRequestCompletedL( TInt aStatus ); - void CreateRssItemL( TInt aRssParentUid, const TDesC& aName, const TDesC& aUrl, TBool aIsFolder ); - void ReplaceRssItemL( TInt aRssItemUid, const TDesC& aNewName, const TDesC& aNewUrl ); - void RssItemCreatedL(); - void RssItemReplacedL( TBool& aMoveNeeded ); - void RegisterSnapshotL(); - void RegisterToSnapshotL( CArrayFixSeg* aSnapshot, TInt aFolderUid ); - void RegisterRssFeedsToSnapshotL( CArrayFixSeg* aSnapshot, - const CFolderItem& folder ); - void AssignString( TDes8& aDestination, const TDesC8& aSource ); - - // Data store states - enum TState - { - EClosed = 0, - EOpenAndWaiting, - EBookmarkOpen, - EBookmarkCreating, - EBookmarkUpdating, - EBookmarkUpdatedAndMoving, - EBookmarkMoving, - EBookmarkDeleting, - EBookmarkDeletingAll - }; - - TState iCurrentState; - - RFs iRfs; - RFavouritesSession iSession; - RFavouritesDb iDb; - TBool iDataBaseOpened; - - RFeedsServer iFeedsServer; - RFolderItem iRootFolder; - - TRequestStatus* iCallerStatus; - - /** - * Key that is used in sorting snapshot. - */ - const TKeyArrayFix iKey; - - /** - * Change finder, used to determine db modifications. - */ - CChangeFinder* iChangeFinder; - - /** - * Bookmark item converter, used to convert xml and vBookmark data. - */ - CBookmarkConversionUtil* iConverter; - - TInt* iCurrentItem; - TInt iReplaceItem; - TSnapshotItem* iMovedItem; - - CBufFlat* iDataBuffer; - TInt iWriterPosition; - TInt iReaderPosition; - - TBool iHasHistory; - - CNSmlDataItemUidSet* iNewItems; - CNSmlDataItemUidSet* iDeletedItems; - CNSmlDataItemUidSet* iSoftDeletedItems; - CNSmlDataItemUidSet* iUpdatedItems; - CNSmlDataItemUidSet* iMovedItems; - - CFavouritesItem::TType iMimeType; - TInt iParentFolder; - TFileName iNewItemName; - - CFavouritesItem* iItemToBeReplaced; - - }; - -#endif