realtimenetprots/sipfw/SIP/LightWeightTimer/inc/Lwtimer.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/SIP/LightWeightTimer/inc/Lwtimer.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,169 @@
+/*
+* 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:
+* Name          : Lwtimer.h
+* Part of       : LightWeightTimer
+* This header file is included by the subsystems needing timer
+* services, but are not responsible for creating the
+* CTimerManager instance.
+* Version       : SIP/4.0
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+
+#ifndef LWTIMER_H
+#define LWTIMER_H
+
+// INCLUDES
+#include <e32def.h>
+
+// TYPEDEFS
+
+//Each timer is associated with an identifier of this type. When a timer is
+//startedt, TTimerId is returned to the user.
+//When a timer expires, its TTimerId is passed in the callback.
+//If the user wishes to stop a certain timer, it must pass the TTimerId of the
+// timer in question to the Lightweight timer subsystem.
+typedef TUint32 TTimerId;
+
+
+// CLASS DECLARATION
+
+/**
+ * When a timer expires, this interface is called by the Lightweight timer
+ * subsystem.
+ */
+class MExpirationHandler
+	{
+public: // Virtual destructor
+
+	virtual ~MExpirationHandler() {}
+
+public: // New pure virtual functions
+
+	/**
+	 * Indicates that a timer has expired.
+	 *
+	 * @param aTimerId Identifies the expired timer
+	 * @param aTimerParam User specified value which was given when the timer
+	 *	was set. It can be used to identify the timer in case multiple timers
+	 *  are running simultaneously. Value is NULL if the timer was set using
+	 *  CTimerManager::StartL without parameter aTimerParam. Ownership isn't
+     *  transferred.
+	 */
+	virtual void TimerExpiredL(TTimerId aTimerId, TAny* aTimerParam) = 0;
+	};
+
+
+/**
+ * MTimerManager provides methods for starting and stopping timers.
+ */
+class MTimerManager
+	{
+public: // Enumerations
+	enum TTimerIdValues
+        {
+		//TimerId value for a non-existent timer. This value is never returned
+        //to the user of the Lightweight timer subsystem.
+		KNoSuchTimer = 0,
+
+		//TimerId for an internal dummy timer, which is used simulate a longer
+        //timer without having to use RTimer::At(). This value is never
+        //returned to the user of the Lightweight timer subsystem.
+		KReservedTimer = 1
+	    };
+
+public: // New pure virtual functions
+
+	/**
+	 * Creates a new timer and starts it.
+	 *
+	 * @pre aObserver != NULL	 
+	 *
+	 * @see See also this method 'MExpirationHandler::TimerExpiredL'
+	 *
+	 * @param aObserver	IN: Callback to use when timer expires. Ownership is
+	 *	not transferred.
+	 * @param aMilliseconds	Timer duration in milliseconds (with 32 bits, the
+	 *	max value is ~50 days)
+	 * @return value TimerId value identifying the new timer	 
+	 */
+	virtual TTimerId StartL(MExpirationHandler* aObserver,
+							TUint aMilliseconds) = 0;
+	
+	/**
+	 * Creates a new timer and starts it.
+	 *
+	 * @pre aObserver != NULL	 
+	 *
+	 * @see See also this method 'MExpirationHandler::TimerExpiredL'
+	 *
+	 * @param aObserver	IN: Callback to use when timer expires. Ownership is
+	 *	not transferred.
+	 * @param aMilliseconds	Timer duration in milliseconds (with 32 bits, the
+	 *	max value is ~50 days)
+	 * @param aTimerParam User specified value which will be passed to the
+	 *	aObserver function MExpirationHandler::TimerExpiredL when the timer
+	 *	expires. Ownership isn't transferred.
+	 * @return value TimerId value identifying the new timer
+	 */
+	virtual TTimerId StartL(MExpirationHandler* aObserver,
+						    TUint aMilliseconds,
+						    TAny* aTimerParam) = 0;
+
+	/**
+	 * Stops the specified timer.
+	 *
+	 * This function doesn't leave in case of error, as it is thought that this
+	 * function is usually also called from destructors.
+	 *
+	 * @param aTimerId Identifies the timer to be stopped	 
+	 * @return value KErrNone: successful
+     *               KErrNotFound : no such timer exists
+	 */	
+	virtual TInt Stop(TTimerId aTimerId) = 0;
+
+	/**
+	 * Checks if there exists a timer which hasn't expired yet, with the
+	 * specified TimerId.
+	 *
+	 * @param aTimerId Identifies the timer	 
+	 * @return value ETrue: timer exists, KFalse: no such timer
+	 */	
+	virtual TBool IsRunning(TTimerId aTimerId) const = 0;
+	
+	/**
+	 * Checks how long it will take until the timer expires, with the
+	 * specified TimerId.
+	 *
+	 * @param aTimerId Identifies the timer	 
+	 * @param aExpiresAfterInMillisecs on return contains expires after
+	 *  value as milliseconds
+	 * @return value KErrNone: successful
+     *               KErrNotFound : no such timer exists
+	 */	
+	virtual TInt ExpiresAfter(TTimerId aTimerId, 
+	                          TUint& aExpiresAfterInMillisecs) const = 0;
+	};
+
+#endif // end of LWTIMER_H
+
+// End of File