--- 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 <SmlDataProvider.h>
-#include <favouritesdb.h>
-#include <nsmlchangefinder.h>
-
-#include <FeedsServerClient.h>
-#include <feedsserverfolderitem.h>
-
-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<TInt>& 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<TSnapshotItem>* aSnapshot, TInt aFolderUid );
- void RegisterRssFeedsToSnapshotL( CArrayFixSeg<TSnapshotItem>* 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