00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef X11_TIMER_HPP
00026 #define X11_TIMER_HPP
00027
00028 #include "../src/os_timer.hpp"
00029
00030 #include <list>
00031
00032
00033 class X11TimerLoop;
00034 class CmdGeneric;
00035
00036
00037
00038 class X11Timer: public OSTimer
00039 {
00040 public:
00041 X11Timer( intf_thread_t *pIntf, CmdGeneric &rCmd );
00042 virtual ~X11Timer();
00043
00046 virtual void start( int delay, bool oneShot );
00047
00049 virtual void stop();
00050
00051 mtime_t getNextDate() const;
00052
00055 bool execute();
00056
00057 private:
00059 CmdGeneric &m_rCommand;
00061 X11TimerLoop *m_pTimerLoop;
00063 mtime_t m_interval;
00065 mtime_t m_nextDate;
00067 bool m_oneShot;
00068 };
00069
00070
00072 class X11TimerLoop: public SkinObject
00073 {
00074 public:
00077 X11TimerLoop( intf_thread_t *pIntf, int connectionNumber );
00078 virtual ~X11TimerLoop();
00079
00081 void addTimer( X11Timer &rTimer );
00082
00084 void removeTimer( X11Timer &rTimer );
00085
00087 void waitNextTimer();
00088
00089 private:
00091 int m_connectionNumber;
00093 list<X11Timer*> m_timers;
00094
00097 bool sleep( int delay );
00098 };
00099
00100
00101 #endif