qpid::sys::AbsTime Class Reference

Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Friends
qpid::sys::AbsTime Class Reference

Class to represent an instant in time. More...

`#include <qpid/sys/Time.h>`

List of all members.

## Public Member Functions
| AbsTime ()
| AbsTime (const AbsTime &time0, const Duration &duration)
bool | operator== (const AbsTime &t) const
## Static Public Member Functions
static AbsTime | now ()
static AbsTime | FarFuture ()
static AbsTime | Epoch ()
## 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, you need to construct a new AbsTime and assign it, viz:

AbsTime when = now(); ... when = AbsTime(when, 2*TIME_SEC); // Advance timer 2 secs

AbsTime is not intended to be used to represent calendar dates/times but you can construct a Duration since the Unix Epoch, 1970-1-1-00:00, so that you can convert to a date/time if needed:

int64_t nanosec_since_epoch = Duration(EPOCH, now());

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.

Definition at line 44 of file Time.h.

## Constructor & Destructor Documentation

qpid::sys::AbsTime::AbsTime | ( |  | ) | `[inline]`

Definition at line 88 of file Time.h.

qpid::sys::AbsTime::AbsTime | ( | const AbsTime & | time0,
|  | const Duration & | duration
| ) |  |

## Member Function Documentation

static AbsTime qpid::sys::AbsTime::Epoch | ( |  | ) | `[static]`

static AbsTime qpid::sys::AbsTime::FarFuture | ( |  | ) | `[static]`

static AbsTime qpid::sys::AbsTime::now | ( |  | ) | `[static]`

Referenced by qpid::sys::now().

bool qpid::sys::AbsTime::operator== | ( | const AbsTime & | t | ) | const`[inline]`

Definition at line 97 of file Time.h.

## Friends And Related Function Documentation

bool operator< | ( | const AbsTime & | a,
|  | const AbsTime & | b
| ) |  | `[friend]`

Definition at line 131 of file Time.h.

std::ostream& operator<< | ( | std::ostream & | ,
|  | const AbsTime & |
| ) |  | `[friend]`

bool operator> | ( | const AbsTime & | a,
|  | const AbsTime & | b
| ) |  | `[friend]`

Definition at line 133 of file Time.h.

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

- qpid/sys/Time.h