00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00023 #ifndef __TIMERENTRY_H__
00024 #define __TIMERENTRY_H__
00025
00026 #include "deltaque.h"
00027
00028 const TUint KWaitTime = 2;
00029 const TInt KMaxTimeToWait = 5;
00030 const TUint KInterval = 1000000;
00031
00036 class TTimerEntry
00037 {
00038 public:
00042 TDeltaQueLink iLink;
00043 };
00044
00048 const TInt KMaxEntry = 5;
00049
00064 class CTimerEntry : public CTimer
00065 {
00066 private:
00070 enum TOp{
00075 EInsert,
00080 ERemove
00081 };
00082 public:
00083 static CTimerEntry* NewL(CConsoleBase* aConsole);
00084 ~CTimerEntry();
00085 TBool AddToQueueL(TInt aInterval);
00086 void ArbitratorL();
00087 TBool RemoveFromQueue();
00088 void RunL();
00089 void DoCancel();
00090 void IssueRequest();
00091 void PrintQue();
00092 private:
00093 CTimerEntry(CConsoleBase* aConsole);
00094 void ConstructL();
00095 private:
00099 TDeltaQue<TTimerEntry> iQueue;
00103 TDblQueIter<TTimerEntry> iIterator;
00107 TInt iCount;
00111 TOp iOp;
00115 CConsoleBase* iConsole;
00121 TBool iWaitFlag;
00122 };
00123
00124 #endif
00125