diff -r 000000000000 -r 094583676ce7 presadap12/Parser2/Inc/MPEngContactItem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/presadap12/Parser2/Inc/MPEngContactItem.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,252 @@ +/* +* Copyright (c) 2004 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: Contact item interface. +* +*/ + +#ifndef __MPENGCONTACTITEM_H +#define __MPENGCONTACTITEM_H + + +// INCLUDES +#include + + + +// FORWARD DECLARATIONS +class MPEngContactItemExt; + +// CONSTANTS +/********************************************************/ +/* Contact Item property levels. */ +/* @since 3.0 */ +/********************************************************/ + + +/** + * Presence Engine contact Item native permanent properties. + * Those properties are permanent over the sessions. + */ +const TUint KPEngCntItemPropertyNativePermanent = 0x00000010; + + +/** + * Presence Engine contact Item native cached properties. + * These property values are discarded on the session close. + */ +const TUint KPEngCntItemPropertyNativeCached = 0x00000020; + + +/** + * External permanent contact Item properties. + * + * These properties are not used by the Presence Engine but + * the clients can use this level to store external + * settings that must be permanent over the sessions. + */ +const TUint KPEngCntItemPropertyExternalPermanent = 0x00000030; + +/** + * External cached contact Item properties. + * + * These properties are not used by the Presence Engine but + * the clients can use this level to store external settings + * that needs to be cleared when the session is closed. + */ +const TUint KPEngCntItemPropertyExternalCached = 0x00000040; + + + + + +// CLASS DECLARATION + +/** + * Interface for one contact item in the contact list. + * + * @since 3.0 + */ +class MPEngContactItem + { + public: // Contact item values + + /** + * Contact Id of the contact Item + * + * @since 3.0 + * @return Contact Id of the contact item. + */ + virtual const TDesC& Id() const = 0; + + + /** + * Nick name of the contact Item + * + * If the contact doesn't have nick defined, + * returns KNullDesC. + * + * @since 3.0 + * @return Nick name of the contact item. + */ + virtual const TDesC& NickName() const = 0; + + + /** + * Update nick name of the contact item + * + * New nick name is assigned to the contact item. Old nick name + * will be replaced once contact list is updated to the server. + * + * @since 3.0 + * @param aNickName New nick name. + */ + virtual void UpdateNickNameL( const TDesC& aNickName ) = 0; + + + public: // Property getters + + /** + * Gets a property. + * + * Gets value of property. + * Overloaded version for different data types. + * + * @since 3.0 + * @param aName Name of the property. + * @param aLevel Level of the property to look for. + * @param aValue Where value is be stored. + * @return KErrNone if property was found. Else KErrNotFound. + */ + virtual TInt GetProperty( TUint aName, + TUint aLevel, + TInt& aValue ) const = 0; + + virtual TInt GetProperty( TUint aName, + TUint aLevel, + TPtrC8& aValue ) const = 0; + + virtual TInt GetProperty( TUint aName, + TUint aLevel, + TPtrC16& aValue ) const = 0; + + /** + * Gets a property. + * + * @since 3.0 + * @param aName Name of the property. + * @param aLevel Level of the property to look for. + * @return if property is found, its value, if not found + * zero is returned as default value + */ + virtual TInt Property( TUint aName, + TUint aLevel ) const = 0; + + public: // Property setters + + + /** + * Sets a property. + * + * Sets value of property. + * Overloaded version for different data types. + * + * @since 3.0 + * @param aName Name of the property + * Predefined Property names are specified above + * Client can also use own property names + * @param aLevel Level of the property to set. + * Predefined levels are specified above. + * @param aValue Value to be set. + */ + virtual void SetPropertyL( TUint aName, + TUint aLevel, + TInt aValue ) = 0; + + virtual void SetPropertyL( TUint aName, + TUint aLevel, + const TDesC8& aValue ) = 0; + + virtual void SetPropertyL( TUint aName, + TUint aLevel, + const TDesC16& aValue ) = 0; + + + /** + * Delete a property + * + * Deletes property out of the contact list preferences + * Property defined by the PEC engine cannot be deleted + * if defined property is not found, function will do nothing + * + * @since 3.0 + * @param aName name of the property to delete + * @param aLevel level of the property to delete + */ + virtual void DeletePropertyL( TUint aName, TUint aLevel ) = 0; + + + public: // Those functions won't any longer supported + // Opaque value extensions + + + /** + * Gets opaque values. + */ + virtual TInt GetPermanentValue( const TDesC& aKey, + TPtrC8& aValue ) const = 0; + virtual TInt GetCachedValue( const TDesC& aKey, + TPtrC8& aValue ) const = 0; + + /** + * Sets opaque values. + */ + virtual void SetPermanentValueL( const TDesC& aKey, + const TDesC8& aValue ) = 0; + virtual void SetCachedValueL( const TDesC& aKey, + const TDesC8& aValue ) = 0; + + /** + * Delete opaque values. + */ + virtual void DeletePermanentValueL( const TDesC& aKey ) = 0; + virtual void DeleteCachedValueL( const TDesC& aKey ) = 0; + + private: //Extensions interfaces + + + /** + * Contact item extension interface. + * + * @since 3.0 + * @return Contact item extension. + */ + virtual MPEngContactItemExt* Extension() = 0; + virtual const MPEngContactItemExt* Extension() const = 0; + + + + protected: //Destructor + + /** + * Virtual inline destructor. + * Protected destructor to prohibits deletion + * through the interface. + */ + virtual ~MPEngContactItem() {}; + + }; +#endif // __MPENGCONTACTITEM_H + +// End of File +