Fawkes API  Fawkes Development Version
fawkes::Time Class Reference

A class for handling time. More...

#include <>>

List of all members.

Public Member Functions

 Time ()
 Constructor.
 Time (const timeval *tv)
 Constructor.
 Time (long sec, long usec, Clock *clock=0)
 Constructor.
 Time (long ms)
 Constructor.
 Time (double sec)
 Constructor.
 Time (Clock *clock)
 Constructor.
 Time (const Time &t)
 Copy constructor.
 Time (const Time *t)
 Copy constructor.
 ~Time ()
 Destructor.
double in_sec () const
 Convet time to seconds.
long in_msec () const
 Convert the stored time into milli-seconds.
long in_usec () const
 Convert the stored time into micro-seconds.
const timeval * get_timeval () const
 Obtain the timeval where the time is stored.
long get_sec () const
 Get seconds.
long get_msec () const
 Get milliseconds.
long get_usec () const
 Get microseconds.
long get_nsec () const
 Get nanoseconds.
void get_timestamp (long &sec, long &usec) const
 Get time stamp.
bool is_zero () const
 Check if time is zero.
void set_time (const timeval *tv)
 Sets the time.
void set_time (long int sec, long int usec)
 Sets the time.
void set_time (long ms)
 Sets the time.
void set_time (double sec)
 Sets the time.
void set_time (const Time &t)
 Set time to given time.
void set_time (const Time *t)
 Set time to given time.
void set_clock (Clock *clock)
 Set clock for this instance.
void add (double seconds)
 Add seconds.
Timestamp ()
 Set this time to the current time.
Timestamp_systime ()
 Set this time to the current system time.
Time operator+ (const double sec) const
 Operator that adds times.
Time operator+ (const long int usec) const
 Operator to add usec value.
Time operator+ (const Time &t) const
 Operator that adds times.
Time operator+ (const Time *t) const
 Operator that adds times.
Time operator- (const Time &t) const
 Operator that substracts one Time from another.
double operator- (const Time *t) const
 Operator that substracts one Time from another.
Time operator- (const long int usec) const
 Operator that subtracts some time.
Time operator- (const double sec) const
 Operator that subtracts some time.
Timeoperator+= (const long int usec)
 += operator
Timeoperator+= (const Time &t)
 += operator
Timeoperator+= (const double sec)
 += operator for double seconds
Timeoperator-= (const Time &t)
Timeoperator-= (const double sec)
Timeoperator-= (const long int usec)
Timeoperator= (const Time &t)
 Assign operator.
bool operator== (const Time &t) const
 Check equality of times.
bool operator== (const Time *t) const
 Check equality of times.
bool operator!= (const Time &t) const
 Check inequality of times.
bool operator!= (const Time *t) const
 Check inequality of times.
bool operator> (const Time &t) const
 Greater than operator.
bool operator> (const Time *t) const
 Greater than operator.
bool operator>= (const Time &t) const
 Greater than or equal to operator.
bool operator>= (const Time *t) const
 Greater than or equal to operator.
bool operator< (const Time &t) const
 Less than operator.
bool operator< (const Time *t) const
 Less than operator.
bool operator<= (const Time &t) const
 Less than or equal to operator.
bool operator<= (const Time *t) const
 Less than or equal to operator.
void wait ()
 Wait (sleep) for this time.
void wait_systime ()
 Wait (sleep) for this system time.
const char * str (bool utc=false) const
 Output function.
void str_r (char *s, bool utc=false)
 Output function.

Static Public Attributes

static const unsigned int TIMESTR_SIZE = 26
 Maximum size of string returned by str() and the minimum size of the string passwd to str_r().

Friends

class Clock

Detailed Description

A class for handling time.

Author:
Daniel Beck
Tim Niemueller

Constructor & Destructor Documentation

fawkes::Time::Time ( )

Constructor.

Sets time to the current time.

Definition at line 98 of file time.cpp.

fawkes::Time::Time ( const timeval *  tv)

Constructor.

Sets time to the given time.

Parameters:
tvthe Time object is initialized with the time given in this timeval

Definition at line 110 of file time.cpp.

fawkes::Time::Time ( long  sec,
long  usec,
Clock clock = 0 
)

Constructor.

Sets time to the given time. Basically the same as setting from a timeval struct but the components are given separately.

Parameters:
sectime in seconds since the epoch (or time range)
usecfractions in microseconds added to sec
clockoptional clock to use, if NULL Clock::instance() will be used

Definition at line 126 of file time.cpp.

fawkes::Time::Time ( long  ms)

Constructor.

Sets time to given number of ms, use for time range.

Parameters:
msthe Time object is initialized to the time given in milli-seconds

Definition at line 143 of file time.cpp.

fawkes::Time::Time ( double  s)

Constructor.

Sets time to given number of ms, use for time range.

Parameters:
sthe Time object is initialized to the time given in seconds

Definition at line 159 of file time.cpp.

fawkes::Time::Time ( Clock clock)

Constructor.

This constructor uses the supplied clock for setting the time. The time is set to the current time.

Parameters:
clockclock

Definition at line 176 of file time.cpp.

References fawkes::Clock::get_time().

fawkes::Time::Time ( const Time t)

Copy constructor.

Parameters:
ttime to copy

Definition at line 187 of file time.cpp.

fawkes::Time::Time ( const Time t)

Copy constructor.

Parameters:
ttime to copy

Definition at line 204 of file time.cpp.

fawkes::Time::~Time ( )

Destructor.

Definition at line 219 of file time.cpp.


Member Function Documentation

void fawkes::Time::add ( double  seconds)

Add seconds.

The effect is equivalent to operator+=(const double sec), but this can be used when the operator is not available (i.e. wrapper languages) and it does not return itself.

Parameters:
secondstime in seconds to add

Definition at line 343 of file time.cpp.

long fawkes::Time::get_msec ( ) const [inline]

Get milliseconds.

Returns:
milliseconds stored in time stamp

Definition at line 111 of file time.h.

long fawkes::Time::get_nsec ( ) const [inline]

Get nanoseconds.

Returns:
microsecons converted to nanoseconds

Definition at line 113 of file time.h.

Referenced by RosLaserScanThread::bb_interface_data_changed(), RosPointCloudThread::loop(), and RosTfThread::bb_interface_data_changed().

long fawkes::Time::get_sec ( ) const [inline]
void fawkes::Time::get_timestamp ( long &  sec,
long &  usec 
) const [inline]

Get time stamp.

Parameters:
secupon return contains seconds stored in time stamp
usecupon return contains microseconds stored in time stamp

Definition at line 114 of file time.h.

Referenced by fawkes::Interface::write().

const timeval * fawkes::Time::get_timeval ( ) const [inline]

Obtain the timeval where the time is stored.

Returns:
a const pointer to the timeval where the time is stored

Definition at line 109 of file time.h.

Referenced by fawkes::Clock::ext_to_realtime(), firevision::SharedMemoryImageBuffer::set_capture_time(), fawkes::SimulatorTimeSource::get_time(), BlackBoardLoggerPlugin::BlackBoardLoggerPlugin(), and BBLoggerThread::BBLoggerThread().

long fawkes::Time::get_usec ( ) const [inline]

Get microseconds.

Returns:
microseconds stored in time stamp

Definition at line 112 of file time.h.

Referenced by fawkes::PointCloudManager::PointCloudStorageAdapter::get_time(), RosImagesThread::loop(), and RobotinoRosJointsThread::loop().

long fawkes::Time::in_msec ( ) const

Convert the stored time into milli-seconds.

Returns:
the time in milli-seconds

Definition at line 242 of file time.cpp.

Referenced by fawkes::WorldInfoDataContainer::check_timeout(), and XabslEngineThread::current_time().

double fawkes::Time::in_sec ( ) const

Convet time to seconds.

Convert the stored time in a floating point number representing the number of seconds. For a time the integral part is the number of seconds since the epoch, for ranges you get the value as a float second.

Returns:
the time in seconds

Definition at line 232 of file time.cpp.

Referenced by fawkes::SimulatorTimeSource::conv_to_realtime(), and BBLogReplayThread::loop().

long fawkes::Time::in_usec ( ) const

Convert the stored time into micro-seconds.

Returns:
the time in micro-seconds

Definition at line 252 of file time.cpp.

bool fawkes::Time::is_zero ( ) const [inline]

Check if time is zero.

Returns:
true if time is zero, i.e. sec = usec = 0, false otherwise

Definition at line 116 of file time.h.

Referenced by FvRetrieverThread::init().

bool fawkes::Time::operator!= ( const Time t) const

Check inequality of times.

Parameters:
ttime to compare to
Returns:
true if sec or usec of both times are different, false otherwise

Definition at line 664 of file time.cpp.

bool fawkes::Time::operator!= ( const Time t) const

Check inequality of times.

Parameters:
ttime to compare to
Returns:
true if sec or usec of both times are different, false otherwise

Definition at line 676 of file time.cpp.

Time fawkes::Time::operator+ ( const double  sec) const

Operator that adds times.

Parameters:
secnumber of seconds to add
Returns:
the sum

Definition at line 387 of file time.cpp.

Time fawkes::Time::operator+ ( const long int  usec) const

Operator to add usec value.

Parameters:
usecmicroseconds to add
Returns:
new resulting instance

Definition at line 412 of file time.cpp.

Time fawkes::Time::operator+ ( const Time t) const

Operator that adds times.

Parameters:
tthe other summand
Returns:
the sum

Definition at line 353 of file time.cpp.

Time fawkes::Time::operator+ ( const Time t) const

Operator that adds times.

Parameters:
tthe other summand
Returns:
the sum

Definition at line 376 of file time.cpp.

Time & fawkes::Time::operator+= ( const long int  usec)

+= operator

Parameters:
usecmicroseconds to add
Returns:
reference to this instance

Definition at line 543 of file time.cpp.

Time & fawkes::Time::operator+= ( const Time t)

+= operator

Parameters:
tthe other time
Returns:
reference to this instance

Definition at line 521 of file time.cpp.

Time & fawkes::Time::operator+= ( const double  sec)

+= operator for double seconds

Parameters:
secnumber of seconds to add
Returns:
the sum

Definition at line 566 of file time.cpp.

Time fawkes::Time::operator- ( const Time t) const

Operator that substracts one Time from another.

Parameters:
tthe Time that is substracted
Returns:
the difference

Definition at line 437 of file time.cpp.

double fawkes::Time::operator- ( const Time t) const

Operator that substracts one Time from another.

Parameters:
tthe Time that is substracted
Returns:
the difference

Definition at line 460 of file time.cpp.

References fawkes::time_diff_sec().

Time fawkes::Time::operator- ( const long int  usec) const

Operator that subtracts some time.

Parameters:
usecnumber of microseconds to subtract
Returns:
the difference

Definition at line 496 of file time.cpp.

Time fawkes::Time::operator- ( const double  sec) const

Operator that subtracts some time.

Parameters:
secnumber of seconds to subtract
Returns:
the difference

Definition at line 471 of file time.cpp.

Time & fawkes::Time::operator-= ( const Time t)

-= operator.

Parameters:
tthe other time
Returns:
reference to this instance after subtraction

Definition at line 590 of file time.cpp.

Time & fawkes::Time::operator-= ( const double  sec)

-= operator.

Parameters:
secseconds to subtract
Returns:
reference to this instance after subtraction

Definition at line 602 of file time.cpp.

Time & fawkes::Time::operator-= ( const long int  usec)

-= operator.

Parameters:
usecmicroseconds to subtract
Returns:
reference to this instance after subtraction

Definition at line 614 of file time.cpp.

bool fawkes::Time::operator< ( const Time t) const

Less than operator.

Parameters:
ttime to compare to
Returns:
true if this time is less than t, false otherwise

Definition at line 736 of file time.cpp.

bool fawkes::Time::operator< ( const Time t) const

Less than operator.

Parameters:
ttime to compare to
Returns:
true if this time is less than t, false otherwise

Definition at line 748 of file time.cpp.

bool fawkes::Time::operator<= ( const Time t) const

Less than or equal to operator.

Parameters:
ttime to compare to
Returns:
true if this time is less than t, false otherwise

Definition at line 760 of file time.cpp.

bool fawkes::Time::operator<= ( const Time t) const

Less than or equal to operator.

Parameters:
ttime to compare to
Returns:
true if this time is less than t, false otherwise

Definition at line 772 of file time.cpp.

Time & fawkes::Time::operator= ( const Time t)

Assign operator.

Parameters:
ttime to assign to this instance
Returns:
reference to this instance

Definition at line 626 of file time.cpp.

bool fawkes::Time::operator== ( const Time t) const

Check equality of times.

Parameters:
ttime to compare to
Returns:
true if sec and usec of both times are the same, false otherwise

Definition at line 640 of file time.cpp.

bool fawkes::Time::operator== ( const Time t) const

Check equality of times.

Parameters:
ttime to compare to
Returns:
true if sec and usec of both times are the same, false otherwise

Definition at line 652 of file time.cpp.

bool fawkes::Time::operator> ( const Time t) const

Greater than operator.

Parameters:
ttime to compare to
Returns:
true if this time is greater than t, false otherwise

Definition at line 688 of file time.cpp.

bool fawkes::Time::operator> ( const Time t) const

Greater than operator.

Parameters:
ttime to compare to
Returns:
true if this time is greater than t, false otherwise

Definition at line 700 of file time.cpp.

bool fawkes::Time::operator>= ( const Time t) const

Greater than or equal to operator.

Parameters:
ttime to compare to
Returns:
true if this time is greater than t, false otherwise

Definition at line 712 of file time.cpp.

bool fawkes::Time::operator>= ( const Time t) const

Greater than or equal to operator.

Parameters:
ttime to compare to
Returns:
true if this time is greater than t, false otherwise

Definition at line 724 of file time.cpp.

void fawkes::Time::set_clock ( Clock clock)

Set clock for this instance.

Parameters:
clockclock to use from now on

Definition at line 329 of file time.cpp.

Referenced by fawkes::Interface::set_clock(), KatanaActThread::init(), NaoQiButtonThread::init(), OpenNiContextThread::init(), and StaticTransformsThread::init().

void fawkes::Time::set_time ( long int  sec,
long int  usec 
)

Sets the time.

Parameters:
secseconds part of the time
usecmicroseconds part of the time

Definition at line 274 of file time.cpp.

void fawkes::Time::set_time ( long  ms)

Sets the time.

Parameters:
msset the time to this value

Definition at line 285 of file time.cpp.

void fawkes::Time::set_time ( double  s)

Sets the time.

Parameters:
sset the time to this value

Definition at line 296 of file time.cpp.

void fawkes::Time::set_time ( const Time t)

Set time to given time.

this is equivalent to operator+, but can be used in situations where the operator cannot be used (for example in Lua).

Parameters:
ttime to set to

Definition at line 308 of file time.cpp.

void fawkes::Time::set_time ( const Time t)

Set time to given time.

Parameters:
ttime to set to

Definition at line 318 of file time.cpp.

Time & fawkes::Time::stamp_systime ( )

Set this time to the current system time.

This bypasses any possibly registered time source. Use with care and only where you really need the system time.

Returns:
reference to this instance

Definition at line 800 of file time.cpp.

Referenced by fawkes::FawkesMainThread::loop(), OpenNiDepthThread::init(), OpenNiImageThread::init(), and OpenNiPointCloudThread::init().

const char * fawkes::Time::str ( bool  utc = false) const

Output function.

Returns:
a pointer to a member containing a string represenation of the given time. If seconds is smaller than 1 billion it is assumed that this time represents a time range rather than a point in time and the time is formatted as seconds.microseconds, otherwise the time is formatted either via localtime() (if utc is false) or gmtime (if utc is true).
Parameters:
utctrue to get type formatted in UTC, otherwise local time

Definition at line 872 of file time.cpp.

Referenced by ROSTalkerPubThread::loop(), and WebviewBlackBoardRequestProcessor::process_request().

void fawkes::Time::str_r ( char *  s,
bool  utc = false 
)

Output function.

This is the thread-safe version of str().

Parameters:
spointer to a string of at least TIMESTR_SIZE bytes.
utctrue to get type formatted in UTC, otherwise local time

Definition at line 901 of file time.cpp.

void fawkes::Time::wait ( )

Wait (sleep) for this time.

This waits for as much time as this instance provides. Note that you have to make sure that you call this on a sensible time range. You probably do not want to wait for almost 40 years when passing a time point...

Definition at line 817 of file time.cpp.

References stamp().

Referenced by BBLogReplayThread::loop().

void fawkes::Time::wait_systime ( )

Wait (sleep) for this system time.

This waits for as much time as this instance provides. Unlike wait() this method calculates the time in system time, althouh the main clock may run slower for example in a simulation. Note that you have to make sure that you call this on a sensible time range. You probably do not want to wait for almost 40 years when passing a time point...

Definition at line 842 of file time.cpp.

Referenced by FestivalSynthThread::say().


Member Data Documentation

const unsigned int fawkes::Time::TIMESTR_SIZE = 26 [static]

Maximum size of string returned by str() and the minimum size of the string passwd to str_r().

Definition at line 166 of file time.h.


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