Bayonne2 / Common C++ 2 Framework
Public Member Functions | Private Attributes
TimerPort Class Reference

Timer ports are used to provide synchronized timing events when managed under a "service thread" such as SocketService. More...

#include <thread.h>

Inheritance diagram for TimerPort:
Inheritance graph
[legend]
Collaboration diagram for TimerPort:
Collaboration graph
[legend]

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. More...
 
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. More...
 
void  incTimer (timeout_t timeout)
  Set a timeout based on the current time reference value either from object creation or the last setTimer(). More...
 
void  decTimer (timeout_t timeout)
  Adjust a timeout based on the current time reference value either from object creation or the last setTimer(). More...
 
void  sleepTimer (void)
  Sleep until the current timer expires. More...
 
void  endTimer (void)
  This is used to "disable" the service thread from expiring the timer object. More...
 
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(). More...
 
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. More...
 

Private Attributes

struct timeval  timer
 
bool  active
 

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.nosp@m.@ost.nosp@m.el.co.nosp@m.m synchronized millisecond timing for service threads.

Definition at line 1759 of file thread.h.

Constructor & Destructor Documentation

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 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 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 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 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 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.
void 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"
void TimerPort::sleepTimer ( void  )

Sleep until the current timer expires.

This is useful in time syncing realtime periodic tasks.

Field Documentation

bool TimerPort::active
private

Definition at line 1766 of file thread.h.

struct timeval TimerPort::timer
private

Definition at line 1762 of file thread.h.


The documentation for this class was generated from the following file:

Generated on Dec 21, 2017 for commoncpp2-1.8.1, ccrtp-1.7.2, libzrtpcpp-2.3.4, ccscript3-1.1.7, ccaudio2-1.0.0 and bayonne2-2.3.2 (after installation in /usr/local/) by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /