diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/bookmarksupport/src/repository.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/bookmarksupport/src/repository.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,144 @@ +// 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: +// All the index values used to reference items in the central repository +// @internalComponent +// +// + +#ifndef __REPOSITORY_H__ +#define __REPOSITORY_H__ + +#include +#include + +// Repository IDs +const TUid KUidBookmarkDatabaseRepository = { 0x10205AF8 }; +const TUid KUidFolderRepository = { 0x10205AF9 }; +const TUid KUidBookmarkRepository = { 0x10205AFA }; +const TUid KUidIconRepository = { 0x10205AFB }; + +const TUint32 KIndexBaseZero = 0; +const TUint32 KSemaphoreIndex = 0; + +// Common index list +const TUint32 KVersionIndex = 1; +const TUint32 KRepNextIndex = 2; + +// Database repository index list +const TUint32 KDbHomeIdIndex = 3; +const TUint32 KDbHomeTextIndex = 4; +const TUint32 KDbSearchUriIndex = 5; +const TUint32 KDbDefaultProxyIndex = 6; +const TUint32 KDbDefaultNapIndex = 7; + +// Common bookmark properties index list +const TUint32 KCmnTitleIndex = 0; +const TUint32 KCmnParentIndex = 1; +const TUint32 KCmnFlagsIndex = 2; +const TUint32 KCmnOwnerIndex = 3; +const TUint32 KCmnDescriptionIndex = 4; +const TUint32 KCmnIconIndex = 5; +const TUint32 KCmnRankIndex = 6; +const TUint32 KBkmrkLastModifiedLoIndex = 7; +const TUint32 KBkmrkLastModifiedHiIndex = 8; + +// Bookmark property index list +const TUint32 KBkmrkLastVisitedLoIndex = 20; +const TUint32 KBkmrkLastVisitedHiIndex = 21; +const TUint32 KBkmrkURIIndex = 22; +const TUint32 KBkmrkAuthNameIndex = 23; +const TUint32 KBkmrkAuthPasswordIndex = 24; +const TUint32 KBkmrkAuthMethodIndex = 25; +const TUint32 KBkmrkProxyIndex = 26; +const TUint32 KBkmrkNapIndex = 27; + +// Custom property start index +const TUint32 KDbCusPropertyStart = 0x00000480; +const TUint32 KBkmrkCusPropertyStart = 0x00000080; +const TUint32 KCusPropertyMask = 0xFFFFFF80; + +// Icon properties index list +const TUint32 KIconDataIndex = 0; + +// Shifts required to isolate the index value +const TInt KBookmarkIndexShift = 8; +const TInt KIconIndexShift = 2; + +const TUint32 KRepExactMask = 0xFFFFFFFF; +const TUint32 KRepIndexMask = 0x000000FF; +const TUint32 KRepIndexFind = 0x00000000; +const TUint32 KRepIconIndexMask = 0x00000003; + +const TUint32 KRepPropertyMask = 0xFFFFFF00; +const TUint32 KRepBkmrkPropertyStart = 0x00000100; +const TUint32 KRepFldrPropertyStart = 0x00000200; +const TUint32 KRepDbPropertyStart = 0x00000300; + +const TUint32 KRepFirstBookmarkIndex = 0x100; + +/** +This class provides a standard way of saving and loading properties to the central repository. +It provides methods for committing data and for maintaining a 'modified' status. This status is used to +determine what actions, if any, are required when the item is committed. +Items that save and load themselves on the central repository derive from this class +*/ +class CRepositoryAccessor: public CBase + { +public: + enum TTransType + { + ETransNew, // create a new repository entry + ETransSave, // save a respository entry + ETransLoad, // load a respository entry + ETransRemove // remove an entry from the repository + }; + +protected: + enum TBkmrkStatus + { + EStatusClean, // is in the database and has not been modified + EStatusDirty, // has changes that have not been committed + EStatusCreating,// is being created and is not yet committed + EStatusDeleted // is being deleted from the repository + }; + +public: + CRepositoryAccessor(); + + void SetRepository(CRepository& aRepository); + + virtual void CommitL(); + virtual void DeleteL(); + virtual void SetDirty(); + void SetClean(); + Bookmark::TItemId NextIndexL(); + + void TransactionL(TTransType aTransType); + + virtual TUint32 IndexBase() = 0; + virtual void SetIdFromIndexBase(TUint32 aIndexBase) = 0; + + virtual void TransNewL() = 0; + virtual void TransSaveL() = 0; + virtual void TransLoadL() = 0; + virtual void TransRemoveL() = 0; + +protected: + TBkmrkStatus iStatus; + CRepository* iRepository; + }; + +typedef RArray TBkmrkAccessorList; + +#endif // __REPOSITORY_H__