NAME
ost::TimerPort -
Timer ports are used to provide synchronized timing events when managed
under a ’service thread’ such as SocketService.
SYNOPSIS
#include <thread.h>
Inherited by ost::SerialPort, and ost::SocketPort.
Public Member Functions
TimerPort ()
Create a timer, mark it as inactive, and set the initial start
time to the creation time of the timer object.
void setTimer (timeout_t timeout=0)
Set a new start time for the object based on when this call is made
and optionally activate the timer for a specified number of
milliseconds.
void incTimer (timeout_t timeout)
Set a timeout based on the current time reference value either from
object creation or the last setTimer().
void decTimer (timeout_t timeout)
Adjust a timeout based on the current time reference value either
from object creation or the last setTimer().
void sleepTimer (void)
Sleep until the current timer expires.
void endTimer (void)
This is used to disable the service thread from expiring the
timer object.
timeout_t getTimer (void) const
This is used by service threads to determine how much time remains
before the timer expires based on a timeout specified in setTimer()
or incTimer().
timeout_t getElapsed (void) const
This is used to determine how much time has elapsed since a timer
port setTimer benchmark time was initially set.
Detailed Description
Timer ports are used to provide synchronized timing events when managed
under a ’service thread’ such as SocketService.
This is made into a stand-alone base class since other derived
libraries (such as the serial handlers) may also use the pooled
’service thread’ model and hence also require this code for managing
timing.
Author:
David Sugar <dyfet@ostel.com> synchronized millisecond timing for
service threads.
Constructor & Destructor Documentation
ost::TimerPort::TimerPort ()
Create a timer, mark it as inactive, and set the initial ’start’ time
to the creation time of the timer object. This allows ’incTimer’ to
initially refer to time delays relative to the original start time of
the object.
Member Function Documentation
void ost::TimerPort::decTimer (timeout_t timeout)
Adjust a timeout based on the current time reference value either from
object creation or the last setTimer(). This reference can be used to
time synchronize realtime data over specified intervals and force
expiration when a new frame should be released in a synchronized
manner.
Parameters:
timeout delay in milliseconds from reference.
void ost::TimerPort::endTimer (void)
This is used to ’disable’ the service thread from expiring the timer
object. It does not effect the reference time from either creation or a
setTimer().
timeout_t ost::TimerPort::getElapsed (void) const
This is used to determine how much time has elapsed since a timer port
setTimer benchmark time was initially set. This allows one to use
setTimer() to set the timer to the current time and then measure
elapsed time from that point forward.
return time elapsed in milliseconds, or TIMEOUT_INF if inactive.
timeout_t ost::TimerPort::getTimer (void) const
This is used by service threads to determine how much time remains
before the timer expires based on a timeout specified in setTimer() or
incTimer(). It can also be called after setting a timeout with
incTimer() to see if the current timeout has already expired and hence
that the application is already delayed and should skip frame(s).
return time remaining in milliseconds, or TIMEOUT_INF if inactive.
void ost::TimerPort::incTimer (timeout_t timeout)
Set a timeout based on the current time reference value either from
object creation or the last setTimer(). This reference can be used to
time synchronize realtime data over specified intervals and force
expiration when a new frame should be released in a synchronized
manner.
Parameters:
timeout delay in milliseconds from reference.
Reimplemented in ost::SerialPort, and ost::SocketPort.
void ost::TimerPort::setTimer (timeout_t timeout = 0)
Set a new start time for the object based on when this call is made and
optionally activate the timer for a specified number of milliseconds.
This can be used to set the starting time of a realtime session.
Parameters:
timeout delay in milliseconds from ’now’
Reimplemented in ost::SerialPort, and ost::SocketPort.
void ost::TimerPort::sleepTimer (void)
Sleep until the current timer expires. This is useful in time syncing
realtime periodic tasks.
Author
Generated automatically by Doxygen for GNU CommonC++ from the source
code.