#include <Time.h>
Public Member Functions | |
AbsTime (const AbsTime &time0, const Duration &duration) | |
bool | operator== (const AbsTime &t) const |
template<class S> | |
void | serialize (S &s) |
Static Public Member Functions | |
static AbsTime | now () |
static AbsTime | FarFuture () |
Friends | |
bool | operator< (const AbsTime &a, const AbsTime &b) |
bool | operator> (const AbsTime &a, const AbsTime &b) |
std::ostream & | operator<< (std::ostream &, const AbsTime &) |
As an aside the internal time can sensibly be negative meaning before the epoch (probably 1/1/1970 although this class doesn't care).
The AbsTime class is a value class and so you don't need to add any accessors to its internal state. If you think you want to replace its value,i You need to construct a new AbsTime and assign it, viz:
AbsTime when = AbsTime::now(); ... when = AbsTime(when, 2*TIME_SEC); // Advance timer 2 secs
If for some reason you need access to the internal nanosec value you need to convert the AbsTime to a Duration and use its conversion to int64_t, viz:
AbsTime now = AbsTime::now();
int64_t ns = Duration(now);
However note that the nanosecond value that is returned here is not defined to be anything in particular and could vary from platform to platform.
There are some sensible operations that are currently missing from AbsTime, but nearly all that's needed can be done with a mixture of AbsTimes and Durations.
For example, convenience operators to add a Duration and AbsTime returning an AbsTime would fit here (although you can already perform the operation with one of the AbsTime constructors). However trying to add 2 AbsTimes doesn't make sense.