diff -r 000000000000 -r b16258d2340f applayerpluginsandutils/bookmarksupport/src/propertyreg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applayerpluginsandutils/bookmarksupport/src/propertyreg.h Tue Feb 02 01:09:52 2010 +0200 @@ -0,0 +1,78 @@ +// 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: +// Classes for registering custom properties. +// @internalComponent +// +// + +#ifndef __PROPERTYREG_H__ +#define __PROPERTYREG_H__ + +#include "customproperty.h" + +typedef RArray TCustomPropertyList; + +/** +The client can register custom properties for bookmark items and the database. There are three sets of +registered properties: database properties, folder properties and bookmark properties. This class is +responsible for handling the registration and checking the registration of these properties. +*/ +class CPropertyReg: public CBase + { +public: + enum TPropertyGroup + { + EGroupDatabase, + EGroupFolder, + EGroupBookmark + }; +public: + static CPropertyReg* NewL(); + ~CPropertyReg(); + + void RefreshL(); + void CommitL(); + + void RegisterPropertyL(TPropertyGroup aGroup, TUid aCustomId, Bookmark::TPropertyType aDataType); + TInt DeregisterPropertyL(TPropertyGroup aGroup, TUid aCustomId); + TInt PropertyIndex(TPropertyGroup aGroup, TUid aPropertyId, Bookmark::TPropertyType aType); + TInt GetPropertyType(TPropertyGroup aGroup, TInt aPropertyIndex, Bookmark::TPropertyType& aType); + +private: + CPropertyReg(); + void ConstructL(); + void Reset(); + + TUint32 AssignIdL(TPropertyGroup aGroup); + + TInt FindProperty(TPropertyList& aList, TUid aPropertyId); + + void UpdateValueListItemL(TCustomPropertyList& aValueList, TInt aIndex, Bookmark::TPropertyType aType, const TAny* aValue); + + TPropertyList& List(TPropertyGroup aGroup); + + void LoadPropertyListL(TPropertyList& aList, TUint32 aPropertyStart); + void LoadPropertiesL(); + +private: + CRepository* iDatabaseRepository; + + TPropertyList iDatabaseProperties; + TPropertyList iFolderProperties; + TPropertyList iBookmarkProperties; + + TBkmrkAccessorList iDeletedList; + }; + +#endif //__PROPERTYREG_H__