qpid::sys::AbsTime Class Reference

Class to represent an instant in time: The time resolution is in nanosecs, and this is held with 64 bits giving a total time span from about 25 million years ago to 25 million years hence. More...

#include <Time.h>

List of all members.

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 &)


Detailed Description

Class to represent an instant in time: The time resolution is in nanosecs, and this is held with 64 bits giving a total time span from about 25 million years ago to 25 million years hence.

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.


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

Generated on Thu May 15 22:25:01 2008 for Qpid by  doxygen 1.5.5