mmserv/tms/tmsserver/inc/tmspubsublistener.h
branchRCL_3
changeset 7 3d8c721bf319
child 17 60e492b28869
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/tms/tmsserver/inc/tmspubsublistener.h	Wed Mar 31 22:29:45 2010 +0300
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2010 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:  Declarations for class TMSPubSubListener
+ *
+ */
+
+#ifndef TMSPUBSUBLISTENER_H
+#define TMSPUBSUBLISTENER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <e32property.h>
+
+namespace TMS {
+
+// FORWARD DECLARATIONS
+class TMSPubSubObserver;
+
+// CLASS DECLARATION
+
+/**
+ *  RProperty poller.
+ */
+class TMSPubSubListener : public CActive
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     * @param aUid the Uid to use
+     * @param aKey item's key
+     * @param aObserver callback interface for notification
+     * @return instance of CSPPubSubListener
+     */
+    static TMSPubSubListener* NewL(const TUid aUid, const TInt aKey,
+            TMSPubSubObserver* aObserver);
+
+    /**
+     * Destructor.
+     */
+    virtual ~TMSPubSubListener();
+
+public:
+    // New functions.
+
+    /**
+     * Gets integer value from P & S.
+     * @param aVal a value in return
+     * @return error code
+     */
+    TInt Get(TInt& aVal);
+
+    /**
+     * Gets 8 bit string value from P&S.
+     * @param aVal a value in return
+     * @return error code
+     */
+    TInt Get(TDes8& aVal);
+
+    /**
+     * Gets 16 bit descriptor value from P&S.
+     * @param aVal a value in return
+     * @return error code
+     */
+    TInt Get(TDes16& aVal);
+
+private:
+    // New functions.
+
+    /**
+     * Starts the listening (RunL).
+     */
+    void StartListening();
+
+private:
+    // From CActive.
+
+    /** @see CActive::RunL */
+    virtual void RunL();
+
+    /** @see CActive::Cancel */
+    virtual void DoCancel();
+
+    /** @see CActive::RunError */
+    virtual TInt RunError(TInt aError);
+
+private:
+
+    /**
+     * Constructor of the listener.
+     * @param aUid the Uid to use
+     * @param aKey item's key
+     * @param aObserver callback interface for notification
+     */
+    TMSPubSubListener(const TUid aUid, TInt aKey,
+	        TMSPubSubObserver* aObserver);
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL();
+
+private:
+    // Data
+
+    /** UID of the monitored item. */
+    TUid iUid;
+
+    /** ID of the monitored item. */
+    TInt iId;
+
+    /** Property to subscribe to. */
+    RProperty iProperty;
+
+    /** Observer for PS notifications. */
+    TMSPubSubObserver* iObserver;
+    };
+
+} //namespace TMS
+
+#endif // TMSPUBSUBLISTENER_H
+
+// End of File