#include <source/ariba/utility/system/Timer.h>
Inherits ariba::utility::SystemEventListener.
Inherited by ariba::application::pingpong::PingPong, ariba::overlay::BaseOverlay [protected]
, ariba::overlay::Chord [protected]
, ariba::overlay::OneHop [protected]
, ariba::overlay::OverlayBootstrap::OverlayBootstrap::WatchdogTimer, ariba::utility::OvlVis::OvlVis::TimedoutIcon, and ariba::utility::PeriodicBroadcast.
Public Member Functions | |
Timer () | |
virtual | ~Timer () |
void | setInterval (unsigned int millis, bool oneshot=false) |
void | start () |
void | stop () |
void | reset () |
bool | isRunning () |
Protected Member Functions | |
virtual void | eventFunction () |
virtual void | handleSystemEvent (const SystemEvent &event) |
Private Member Functions | |
use_logging_h (Timer) | |
Static Private Member Functions | |
static void | threadFunc (Timer *obj) |
Private Attributes | |
boost::thread * | timerThread |
volatile unsigned int | millis |
volatile bool | running |
volatile bool | oneshot |
Definition at line 61 of file Timer.h.
ariba::utility::Timer::Timer | ( | ) |
ariba::utility::Timer::~Timer | ( | ) | [virtual] |
void ariba::utility::Timer::eventFunction | ( | ) | [protected, virtual] |
Reimplemented in ariba::overlay::BaseOverlay, ariba::overlay::Chord, ariba::overlay::OneHop, ariba::overlay::OverlayBootstrap::OverlayBootstrap::WatchdogTimer, ariba::utility::PeriodicBroadcast, ariba::utility::OvlVis::OvlVis::TimedoutIcon, and ariba::application::pingpong::PingPong.
Definition at line 104 of file Timer.cpp.
Referenced by handleSystemEvent().
void ariba::utility::Timer::handleSystemEvent | ( | const SystemEvent & | event | ) | [protected, virtual] |
Implements ariba::utility::SystemEventListener.
Definition at line 133 of file Timer.cpp.
References eventFunction(), ariba::utility::SystemQueue::instance(), millis, oneshot, running, ariba::utility::SystemQueue::scheduleEvent(), and ariba::utility::TimerEventType.
bool ariba::utility::Timer::isRunning | ( | ) |
void ariba::utility::Timer::reset | ( | ) |
Reset a running timer and ignore the remaining interval time. Does not fire the timer event and start the timer with a new interval.
Definition at line 86 of file Timer.cpp.
References timerThread.
Referenced by stop().
void ariba::utility::Timer::setInterval | ( | unsigned int | millis, | |
bool | oneshot = false | |||
) |
Set the interval for the timer
millis | Timer interval in milliseconds | |
oneshot | Is this a one-shot or periodic timer |
Definition at line 67 of file Timer.cpp.
Referenced by ariba::overlay::Chord::joinOverlay(), ariba::overlay::OneHop::OneHop(), ariba::application::pingpong::PingPong::PingPong(), ariba::utility::PeriodicBroadcast::start(), ariba::overlay::BaseOverlay::start(), ariba::utility::OvlVis::OvlVis::TimedoutIcon::startIcon(), and ariba::overlay::OverlayBootstrap::OverlayBootstrap::WatchdogTimer::startWatchdog().
void ariba::utility::Timer::start | ( | ) |
Start the timer
Reimplemented in ariba::utility::PeriodicBroadcast.
Definition at line 72 of file Timer.cpp.
References ariba::utility::SystemQueue::instance(), millis, running, ariba::utility::SystemQueue::scheduleEvent(), threadFunc(), ariba::utility::TimerEventType, and timerThread.
Referenced by ariba::overlay::Chord::joinOverlay(), ariba::overlay::OneHop::OneHop(), ariba::application::pingpong::PingPong::onJoinCompleted(), ariba::overlay::BaseOverlay::start(), ariba::utility::OvlVis::OvlVis::TimedoutIcon::startIcon(), and ariba::overlay::OverlayBootstrap::OverlayBootstrap::WatchdogTimer::startWatchdog().
void ariba::utility::Timer::stop | ( | ) |
Stop the timer
Reimplemented in ariba::overlay::BaseOverlay, and ariba::utility::PeriodicBroadcast.
Definition at line 99 of file Timer.cpp.
References reset(), and running.
Referenced by ariba::overlay::Chord::leaveOverlay(), ariba::application::pingpong::PingPong::shutdown(), ariba::overlay::OverlayBootstrap::OverlayBootstrap::WatchdogTimer::stopWatchdog(), ariba::overlay::OneHop::~OneHop(), and ariba::utility::OvlVis::OvlVis::TimedoutIcon::~TimedoutIcon().
void ariba::utility::Timer::threadFunc | ( | Timer * | obj | ) | [static, private] |
Definition at line 109 of file Timer.cpp.
References ariba::utility::SystemQueue::instance(), millis, oneshot, running, ariba::utility::SystemQueue::scheduleEvent(), ariba::utility::Helper::sleep(), and ariba::utility::TimerEventType.
Referenced by start().
ariba::utility::Timer::use_logging_h | ( | Timer | ) | [private] |
volatile unsigned int ariba::utility::Timer::millis [private] |
Definition at line 109 of file Timer.h.
Referenced by handleSystemEvent(), start(), and threadFunc().
volatile bool ariba::utility::Timer::oneshot [private] |
volatile bool ariba::utility::Timer::running [private] |
Definition at line 110 of file Timer.h.
Referenced by handleSystemEvent(), isRunning(), start(), stop(), threadFunc(), Timer(), and ~Timer().
boost::thread* ariba::utility::Timer::timerThread [private] |