diff -r e1b6206813b4 -r 72d484772ca6 emailservices/emailservermonitor/inc/emailservermonitorutilities.h --- a/emailservices/emailservermonitor/inc/emailservermonitorutilities.h Fri Feb 19 22:37:30 2010 +0200 +++ b/emailservices/emailservermonitor/inc/emailservermonitorutilities.h Fri Mar 12 15:41:14 2010 +0200 @@ -23,6 +23,9 @@ #include #include // TSecureId +// Forward declarations +class CEmailServerMonitorTimer; + const TInt KDefaultTimeToWaitInSeconds = 3; ///////////////////////////////////////////////////////////////////////////// @@ -52,4 +55,93 @@ TBool IsProcessRunning( TSecureId aUid, RProcess* aProcess = NULL ); +/** +* Generic timer's callback +* +* Classes inherited from this one can be used as a callback for the generic +* timer. TimerEvent() is called when the timer elapses. +* +*/ +class MEmailServerMonitorTimerCallback + { +public: + /** + * @param aTriggeredTimer The timer which launched this event. + */ + virtual void TimerEventL( CEmailServerMonitorTimer* aTriggeredTimer ) = 0; + }; + +/** +* Generic timer +* +* Caller gives MEmailServerMonitorTimerCallback inherited pointer as a +* parameter, and that pointer is used as a callback when the timer elapses. +* Timer interval is given as a parameter for the Start function. +* +*/ +class CEmailServerMonitorTimer : public CTimer + { +public: + + /** + * Symbian two-pahse constructor. + * + * @param aCallback Callback class + * @param aPriority Timers priority, EPriorityStandard by default + */ + static CEmailServerMonitorTimer* NewL( + MEmailServerMonitorTimerCallback* aCallback, + const TInt aPriority = CActive::EPriorityStandard ); + + /** + * Symbian two-pahse constructor. + * + * @param aCallback Callback class + * @param aPriority Timers priority, EPriorityStandard by default + */ + static CEmailServerMonitorTimer* NewLC( + MEmailServerMonitorTimerCallback* aCallback, + const TInt aPriority = CActive::EPriorityStandard ); + + /** + * Destructor. + */ + ~CEmailServerMonitorTimer(); + + /** + * Starts the timer with specified interval, or with the default value. + * + * @param aInterval Timer interval as microseconds + */ + void Start( TInt aInterval ); + + /** + * Stops the timer. + */ + void Stop(); + + /** + * CActive object's RunL + */ + void RunL(); + +protected: + /** + * Constructor. + */ + CEmailServerMonitorTimer( MEmailServerMonitorTimerCallback* aCallback, + const TInt aPriority ); + +private: + /** + * 2nd phase constructor. + */ + void ConstructL(); + +private: + /* Pointer to callback class */ + MEmailServerMonitorTimerCallback* iCallback; + }; + + #endif // EMAILSERVERMONITORUTILITIES_H