UHD  003.007.001-35-g43512ede
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Public Member Functions | Static Public Member Functions | List of all members
uhd::time_spec_t Class Reference

#include <time_spec.hpp>

Public Member Functions

 time_spec_t (double secs=0)
 time_spec_t (time_t full_secs, double frac_secs=0)
 time_spec_t (time_t full_secs, long tick_count, double tick_rate)
long get_tick_count (double tick_rate) const
long long to_ticks (const double tick_rate) const
double get_real_secs (void) const
time_t get_full_secs (void) const
double get_frac_secs (void) const
time_spec_toperator+= (const time_spec_t &)
 Implement addable interface.
time_spec_toperator-= (const time_spec_t &)
 Implement subtractable interface.

Static Public Member Functions

static time_spec_t get_system_time (void)
static time_spec_t from_ticks (long long ticks, double tick_rate)

Detailed Description

A time_spec_t holds a seconds and a fractional seconds time value. Depending upon usage, the time_spec_t can represent absolute times, relative times, or time differences (between absolute times).

The time_spec_t provides clock-domain independent time storage, but can convert fractional seconds to/from clock-domain specific units.

The fractional seconds are stored as double precision floating point. This gives the fractional seconds enough precision to unambiguously specify a clock-tick/sample-count up to rates of several petahertz.

Constructor & Destructor Documentation

uhd::time_spec_t::time_spec_t ( double  secs = 0)

Create a time_spec_t from a real-valued seconds count.

Parameters
secsthe real-valued seconds count (default = 0)
uhd::time_spec_t::time_spec_t ( time_t  full_secs,
double  frac_secs = 0 
)

Create a time_spec_t from whole and fractional seconds.

Parameters
full_secsthe whole/integer seconds count
frac_secsthe fractional seconds count (default = 0)
uhd::time_spec_t::time_spec_t ( time_t  full_secs,
long  tick_count,
double  tick_rate 
)

Create a time_spec_t from whole seconds and fractional ticks. Translation from clock-domain specific units.

Parameters
full_secsthe whole/integer seconds count
tick_countthe fractional seconds tick count
tick_ratethe number of ticks per second

Member Function Documentation

static time_spec_t uhd::time_spec_t::from_ticks ( long long  ticks,
double  tick_rate 
)
static

Create a time_spec_t from a 64-bit tick count. Translation from clock-domain specific units.

Parameters
ticksan integer count of ticks
tick_ratethe number of ticks per second
UHD_INLINE double uhd::time_spec_t::get_frac_secs ( void  ) const

Get the fractional part of the time in seconds.

Returns
the fractional seconds
UHD_INLINE time_t uhd::time_spec_t::get_full_secs ( void  ) const

Get the whole/integer part of the time in seconds.

Returns
the whole/integer seconds
double uhd::time_spec_t::get_real_secs ( void  ) const

Get the time as a real-valued seconds count. Note: If this time_spec_t represents an absolute time, the precision of the fractional seconds may be lost.

Returns
the real-valued seconds
static time_spec_t uhd::time_spec_t::get_system_time ( void  )
static

Get the system time in time_spec_t format. Uses the highest precision clock available.

Returns
the system time as a time_spec_t
long uhd::time_spec_t::get_tick_count ( double  tick_rate) const

Convert the fractional seconds to clock ticks. Translation into clock-domain specific units.

Parameters
tick_ratethe number of ticks per second
Returns
the fractional seconds tick count
time_spec_t& uhd::time_spec_t::operator+= ( const time_spec_t )

Implement addable interface.

time_spec_t& uhd::time_spec_t::operator-= ( const time_spec_t )

Implement subtractable interface.

long long uhd::time_spec_t::to_ticks ( const double  tick_rate) const

Convert the time spec into a 64-bit tick count. Translation into clock-domain specific units.

Parameters
tick_ratethe number of ticks per second
Returns
an integer number of ticks

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