inc/CPEngTrackedPresenceID2.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/CPEngTrackedPresenceID2.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,198 @@
+/*
+* 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:  Tracked Presence ID.
+*
+*/
+
+
+#ifndef __CPENGTRACKEDPRESENCEID2_H
+#define __CPENGTRACKEDPRESENCEID2_H
+
+//  INCLUDES
+#include <E32Base.h>
+
+//FORWARD DECLARATIONS
+class CPEngTrackedPresenceIDEntry;
+
+
+
+
+/**
+ * Tracked Presence ID.
+ *
+ * Presents one tracked Presence ID and list of
+ * presence attributes tracked for the Presence ID.
+ *
+ * In case of notification, holds also information
+ * of presence attributes that have changed for the Presence ID.
+ *
+ * @lib PEngManager2.lib
+ * @since 3.0
+ */
+class CPEngTrackedPresenceID2 : public CBase
+    {
+
+        //-----------------------------------------------------------------------
+    protected: /* Construction */
+
+        /**
+         * C++ constructor.
+         */
+        CPEngTrackedPresenceID2( CPEngTrackedPresenceIDEntry& aImp );
+
+
+        /**
+         * Destructor.
+         */
+        ~CPEngTrackedPresenceID2();
+
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Tracked presence data */
+
+
+        /**
+         * Tracked presence ID.
+         *
+         * @since 3.0
+         * @return Tracked presence ID.
+         */
+        IMPORT_C TPtrC PresenceID() const;
+
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Iterators for tracked attributes */
+
+        /**
+         * Gets first tracked presence attribute
+         * for the Presence ID. Tracked attributes are
+         * kept in unsigned key order.
+         *
+         * @since 3.0
+         * @return First tracked presence attribute.
+         * If there isn't any tracked attributes, returns
+         * KPEngNullAttributeType.
+         */
+        IMPORT_C TUint32 FirstTrackedAttribute();
+
+
+
+        /**
+         * Gets next tracked presence attribute
+         * for the Presence ID.
+         *
+         * @since 3.0
+         * @return Next tracked presence attribute.
+         * If there isn't any more tracked attributes,
+         * returns KPEngNullAttributeType.
+         */
+        IMPORT_C TUint32 NextTrackedAttribute();
+
+
+
+        /**
+         * Resets the tracked attribute iterator to its
+         * initial state, so the a subsequent call to
+         * NextTrackedAttribute() method go to the first
+         * tracked item.
+         */
+        IMPORT_C void ResetTrackedIterator();
+
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Iterators for changed attributes */
+
+
+        /**
+         * Gets first changed presence attribute for the
+         * Presence ID. Changed attributes are kept
+         * in unsigned key order.
+         *
+         * Changed attributes are available only
+         * after presence change notification.
+         *
+         * @since 3.0
+         * @return First changed presence attribute.
+         * If there isn't any changed attributes, returns
+         * KPEngNullAttributeType.
+         */
+        IMPORT_C TUint32 FirstChangedAttribute();
+
+
+
+        /**
+         * Gets next changed presence attribute
+         * for the Presence ID.
+         *
+         * Changed attributes are available only
+         * after presence change notification.
+         *
+         * @since 3.0
+         * @return Next changed presence attribute.
+         * If there isn't any more changed attributes,
+         * returns KPEngNullAttributeType.
+         */
+        IMPORT_C TUint32 NextChangedAttribute();
+
+
+
+        /**
+         * Resets the changed attribute iterator to its
+         * initial state, so the a subsequent call to
+         * NextChangedAttribute() method go to the first
+         * changed item.
+         *
+         * @since 3.0
+         */
+        IMPORT_C void ResetChangedIterator();
+
+
+
+        //-----------------------------------------------------------------------
+    private: /* Data */
+
+
+        /**
+         * Implementation is friend.
+         * @since 3.0
+         */
+        friend class CPEngTrackedPresenceIDEntry;		// CSI: 36 #
+
+
+        //REF: Implementation
+        CPEngTrackedPresenceIDEntry&    iImp;
+
+        //OWN: Iterator index
+        TInt iNextTrackedAttributeIx;
+
+        //OWN: Iterator index
+        TInt iNextChangedAttributeIx;
+
+    };
+
+#endif      //__CPENGTRACKEDPRESENCEID2_H
+
+
+//End of file
+
+
+
+
+