--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/MPEngPresenceAttrTypeProperties2.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,230 @@
+/*
+* 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: Presence attribute type properties.
+*
+*/
+
+#ifndef __MPENGPRESENCEATTRTYPEPROPERTIES2_H
+#define __MPENGPRESENCEATTRTYPEPROPERTIES2_H
+
+// INCLUDES
+#include <E32Std.h>
+
+
+//FORWARD DECLARATIONS
+class MPEngPresenceAttrTypePropertiesExt2;
+
+
+
+// DATA DECLARATION
+
+
+/**
+ * Attribute data originator.
+ *
+ * Attribute data originator specifies which
+ * presence service element is responsible of
+ * filling the attribute data.
+ *
+ * Purely server originated attributes and
+ * also local attributes are not allowed to
+ * be published from client to network server.
+ *
+ * @since 3.0
+ */
+enum TPEngAttributeOriginator
+ {
+ /**
+ * Attribute originator is unknown.
+ */
+ EPEngOriginatorUnknown = -1,
+
+
+ /**
+ * Attribute is local one and can't be used in network transactions.
+ */
+ EPEngLocalAttribute = 1,
+
+
+ /**
+ * Attribute values are filled by the network server.
+ */
+ EPEngServerOriginated = 2,
+
+
+ /**
+ * Attribute values are filled by the publishing client.
+ */
+ EPEngClientOriginated = 3,
+
+
+ /**
+ * Attribute values are filled by the client and
+ * the network server.
+ */
+ EPEngClientServerOriginated = 4
+ };
+
+
+
+
+
+// CLASS DECLARATION
+/**
+ * Attribute type properties.
+ *
+ * Interface to access presence attribute properties.
+ * Concrete presence attribute types share these properties
+ * but they have different property values.
+ *
+ * @since 3.0
+ */
+class MPEngPresenceAttrTypeProperties2
+ {
+ public: //Attribute type specific data
+
+ /**
+ * Attribute type ID.
+ *
+ * Returns ID identifying attribute type.
+ *
+ * Attribute type ID identifies the presence data
+ * contained in the attribute. Concrete attribute types
+ * have their own data semantics that has to be known
+ * before using the attribute model.
+ *
+ * @since 3.0
+ * @return Attribute type identifier.
+ */
+ virtual TUint32 Type() const = 0;
+
+
+ /**
+ * Presence attribute data originator.
+ *
+ * Possible originator values are listed in
+ * TPEngAttributeOriginator enumeration.
+ *
+ * @since 3.0
+ * @return Originator.
+ */
+ virtual TPEngAttributeOriginator Originator() const = 0;
+
+
+
+ public: //Generic properties
+
+
+ /**
+ * Gets attribute type property as TInt.
+ *
+ * @since 3.0
+ * @parm aPropertyName The property name.
+ * @parm aPropertyLevel The property level.
+ * @param aProperty On the return contains the property value.
+ * @return Result from property get:
+ * - KErrNone if property succesfully get.
+ * - KErrNotSupported if requested property not supported.
+ * - Else one of system wide error codes.
+ */
+ virtual TInt GetProperty(
+ TUint aPropertyName,
+ TUint aPropertyLevel,
+ TInt& aProperty ) const = 0;
+
+
+ /**
+ * Gets attribute type property as 8 bit descriptor
+ *
+ * @since 3.0
+ * @parm aPropertyName The property name.
+ * @parm aPropertyLevel The property level.
+ * @param aProperty On the return contains the property value.
+ * @return Result from property get:
+ * - KErrNone if property succesfully get.
+ * - KErrNotSupported if requested property not supported.
+ * - Else one of system wide error codes.
+ */
+ virtual TInt GetProperty(
+ TUint aPropertyName,
+ TUint aPropertyLevel,
+ TDes8& aProperty ) const = 0;
+
+
+
+
+ /**
+ * Gets attribute type property as 16 bit pointer descriptor
+ *
+ * @since 3.0
+ * @parm aPropertyName The property name.
+ * @parm aPropertyLevel The property level.
+ * @param aProperty On the return contains the property value.
+ * @return Result from property get:
+ * - KErrNone if property succesfully get.
+ * - KErrNotSupported if requested property not supported.
+ * - Else one of system wide error codes.
+ */
+ virtual TInt GetPropertyPtr(
+ TUint aPropertyName,
+ TUint aPropertyLevel,
+ TPtrC16& aProperty ) const = 0;
+
+
+
+
+ private: //Extensions interfaces
+
+
+ /**
+ * Generic attribute property extension interface.
+ *
+ * @since 3.0
+ * @return Attribute property extension.
+ */
+ virtual MPEngPresenceAttrTypePropertiesExt2* Extension() = 0;
+
+
+ /**
+ * Attribute model type specific property extension.
+ *
+ * @since 3.0
+ * @return Attribute type specific property extension.
+ */
+ virtual TAny* TypeExtension( TUint32 aType ) = 0;
+
+
+
+
+ protected: //Destructor
+
+ /**
+ * Inline virtual destructor.
+ *
+ * Concrete attribute property objects
+ * can't be destroyed using this interface.
+ */
+ virtual ~MPEngPresenceAttrTypeProperties2() {};
+
+ };
+
+
+
+#endif // __MPENGPRESENCEATTRTYPEPROPERTIES2_H
+
+
+// End of File
+
+
+