X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Ftimer.hh;h=7d3e726d224c464e0be69668d9d352dcd7e3a600;hb=4c71c71d57e87c5273e09976fbac5b3a2f83bc52;hp=509a4a070d5a16170b1a533db4ec2fe4f91eaed3;hpb=d0b55be2c7afb5b25b42804c9eab4995e64dff52;p=chaz%2Fopenbox diff --git a/otk/timer.hh b/otk/timer.hh index 509a4a07..7d3e726d 100644 --- a/otk/timer.hh +++ b/otk/timer.hh @@ -1,4 +1,4 @@ -// -*- mode: C++; indent-tabs-mode: nil; -*- +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- #ifndef __timer_hh #define __timer_hh @@ -17,88 +17,87 @@ extern "C" { namespace otk { -class OBTimerQueueManager; +class TimerQueueManager; -//! The data passed to the OBTimeoutHandler function. +//! The data passed to the TimeoutHandler function. /*! Note: this is a very useful place to put an object instance, and set the event handler to a static function in the same class. */ -typedef void *OBTimeoutData; -//! The type of function which can be set as the callback for an OBTimer firing -typedef void (*OBTimeoutHandler)(OBTimeoutData); +typedef void *TimeoutData; +//! The type of function which can be set as the callback for a Timer firing +typedef void (*TimeoutHandler)(TimeoutData); //! A Timer class which will fire a function when its time elapses -class OBTimer { +class Timer { private: //! The manager which to add ourself to and remove ourself after we are done - OBTimerQueueManager *manager; + TimerQueueManager *_manager; //! The function to call when the time elapses - OBTimeoutHandler handler; - //! The data which gets passed along to the OBTimeoutHandler - OBTimeoutData data; + TimeoutHandler _handler; + //! The data which gets passed along to the TimeoutHandler + TimeoutData _data; //! Determines if the timer is currently started - bool timing; + bool _timing; //! When this is true, the timer will reset itself to fire again every time - bool recur; + bool _recur; //! The time at which the timer started timeval _start; //! The time at which the timer is going to fire timeval _timeout; - //! Disallows copying of OBTimer objects - OBTimer(const OBTimer&); - //! Disallows copying of OBTimer objects - OBTimer& operator=(const OBTimer&); + //! Disallows copying of Timer objects + Timer(const Timer&); + //! Disallows copying of Timer objects + Timer& operator=(const Timer&); public: - //! Constructs a new OBTimer object + //! Constructs a new Timer object /*! - @param m The OBTimerQueueManager with which to associate. The manager + @param m The TimerQueueManager with which to associate. The manager specified will be resposible for making this timer fire. @param h The function to call when the timer fires @param d The data to pass along to the function call when the timer fires */ - OBTimer(OBTimerQueueManager *m, OBTimeoutHandler h, OBTimeoutData d); - //! Destroys the OBTimer object - virtual ~OBTimer(); - - //! Fires the timer, calling its OBTimeoutHandler - void fireTimeout(); - - //! Returns if the OBTimer is started and timing - inline bool isTiming() const { return timing; } - //! Returns if the OBTimer is going to repeat - inline bool isRecurring() const { return recur; } - - //! Gets the amount of time the OBTimer should last before firing - inline const timeval &getTimeout() const { return _timeout; } - //! Gets the time at which the OBTimer started - inline const timeval &getStartTime() const { return _start; } - - //! Gets the amount of time left before the OBTimer fires - timeval timeRemaining(const timeval &tm) const; - //! Returns if the OBTimer is past its timeout time, and should fire + Timer(TimerQueueManager *m, TimeoutHandler h, TimeoutData d); + //! Destroys the Timer object + virtual ~Timer(); + + //! Fires the timer, calling its TimeoutHandler + void fire(); + + //! Returns if the Timer is started and timing + inline bool timing() const { return _timing; } + //! Returns if the Timer is going to repeat + inline bool recurring() const { return _recur; } + + //! Gets the amount of time the Timer should last before firing + inline const timeval &timeout() const { return _timeout; } + //! Gets the time at which the Timer started + inline const timeval &startTime() const { return _start; } + + //! Gets the amount of time left before the Timer fires + timeval remainingTime(const timeval &tm) const; + //! Returns if the Timer is past its timeout time, and should fire bool shouldFire(const timeval &tm) const; - //! Gets the time at which the OBTimer will fire - timeval endpoint() const; + //! Gets the time at which the Timer will fire + timeval endTime() const; - //! Sets the OBTimer to repeat or not + //! Sets the Timer to repeat or not /*! @param b If true, the timer is set to repeat; otherwise, it will fire only once */ - inline void recurring(bool b) { recur = b; } + inline void setRecurring(bool b) { _recur = b; } - //! Sets the amount of time for the OBTimer to last before firing in - //! milliseconds + //! Sets the amount of time for the Timer to last in milliseconds /*! @param t The number of milliseconds the timer should last */ void setTimeout(long t); - //! Sets the amount of time the OBTimer should last before firing + //! Sets the amount of time the Timer should last before firing /*! @param t The amount of time the timer should last */ @@ -106,7 +105,7 @@ public: //! Causes the timer to begin /*! - The timer fires after the time in OBTimer::getTimeout has passed since this + The timer fires after the time in Timer::getTimeout has passed since this function was called. Calling this function while the timer is already started will cause it to restart its countdown. @@ -119,13 +118,13 @@ public: */ void stop(); // manager releases timer - //! Determines if this OBTimer will fire before a second OBTimer object + //! Determines if this Timer will fire before a second Timer object /*! - @param other The second OBTimer with which to compare - @return true if this OBTimer will fire before 'other'; otherwise, false + @param other The second Timer with which to compare + @return true if this Timer will fire before 'other'; otherwise, false */ - bool operator<(const OBTimer& other) const - { return shouldFire(other.endpoint()); } + bool operator<(const Timer& other) const + { return shouldFire(other.endTime()); } }; }