inlib  1.2.0
Public Member Functions | Protected Attributes
inlib::base_timer Class Reference
Collaboration diagram for inlib::base_timer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void action ()=0
 base_timer (unsigned int a_interval)
virtual ~base_timer ()
 base_timer (const base_timer &a_from)
base_timeroperator= (const base_timer &a_from)
void set_interval (unsigned int a_interval)
unsigned int interval () const
void start ()
void stop ()
bool active () const
void check_time_out ()

Protected Attributes

unsigned int m_interval
bool m_started
atime m_prev

Detailed Description

Definition at line 11 of file base_timer.


Constructor & Destructor Documentation

inlib::base_timer::base_timer ( unsigned int  a_interval) [inline]

Definition at line 15 of file base_timer.

  :m_interval(a_interval)
  ,m_started(false)
  ,m_prev(atime(0,0))
  {}
virtual inlib::base_timer::~base_timer ( ) [inline, virtual]

Definition at line 20 of file base_timer.

{}
inlib::base_timer::base_timer ( const base_timer a_from) [inline]

Definition at line 22 of file base_timer.

  :m_interval(a_from.m_interval)
  ,m_started(false)
  ,m_prev(atime(0,0))
  {}

Member Function Documentation

virtual void inlib::base_timer::action ( ) [pure virtual]
bool inlib::base_timer::active ( ) const [inline]

Definition at line 43 of file base_timer.

{return m_started;}
void inlib::base_timer::check_time_out ( ) [inline]

Definition at line 44 of file base_timer.

                        {
    if(!m_started) return;
    atime elaps = atime::elapsed(m_prev);
    atime::num_t secs = elaps.seconds();
    atime::num_t micro_secs = elaps.micro_seconds();
    atime::num_t milli_secs = secs*1000+micro_secs/1000;
    if((unsigned int)milli_secs>m_interval) {
      action();
      m_prev = atime::now();    
    }
  }  
unsigned int inlib::base_timer::interval ( ) const [inline]

Definition at line 35 of file base_timer.

{return m_interval;}
base_timer& inlib::base_timer::operator= ( const base_timer a_from) [inline]

Definition at line 27 of file base_timer.

                                                 {
    m_interval = a_from.m_interval;
    m_started = false;
    m_prev = atime(0,0);
    return *this;
  }
void inlib::base_timer::set_interval ( unsigned int  a_interval) [inline]

Definition at line 34 of file base_timer.

{m_interval = a_interval;}
void inlib::base_timer::start ( ) [inline]

Definition at line 36 of file base_timer.

               {
    m_started = true;
    m_prev = atime::now();
  }
void inlib::base_timer::stop ( ) [inline]

Definition at line 40 of file base_timer.

              {
    m_started = false;
  }

Member Data Documentation

unsigned int inlib::base_timer::m_interval [protected]

Definition at line 56 of file base_timer.

Definition at line 58 of file base_timer.

bool inlib::base_timer::m_started [protected]

Definition at line 57 of file base_timer.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines