PulseTimer.h++
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __ccxx_PulseTimer_hxx
00024 #define __ccxx_PulseTimer_hxx
00025
00026 #include <commonc++/Common.h++>
00027 #include <commonc++/Thread.h++>
00028
00029 namespace ccxx {
00030
00039 class COMMONCPP_API PulseTimer : public Thread
00040 {
00041 public:
00042
00050 PulseTimer(uint_t interval = 1, uint_t initialDelay = 0) throw();
00051
00053 ~PulseTimer() throw();
00054
00056 inline uint32_t getPulseCount() const throw()
00057 { return(_count); }
00058
00064 inline time_ms_t getLastPulseTime() const throw()
00065 { return((_count > 0) ? _last : 0); }
00066
00067 protected:
00068
00069 void run();
00070 void cleanup();
00071
00076 virtual void pulse(const time_ms_t &now) = 0;
00077
00078 private:
00079
00080 uint_t _interval;
00081 uint_t _delay;
00082 time_ms_t _last;
00083 uint32_t _count;
00084 };
00085
00086 };
00087
00088 #endif // __ccxx_PulseTimer_hxx
00089
00090