LLVM API Documentation
Provides an abstraction for a fixed point in time. More...
#include <TimeValue.h>
Public Types | |
enum | TimeConversions { NANOSECONDS_PER_SECOND = 1000000000, MICROSECONDS_PER_SECOND = 1000000, MILLISECONDS_PER_SECOND = 1000, NANOSECONDS_PER_MICROSECOND = 1000, NANOSECONDS_PER_MILLISECOND = 1000000, NANOSECONDS_PER_WIN32_TICK = 100 } |
typedef int64_t | SecondsType |
Type used for representing seconds. | |
typedef int32_t | NanoSecondsType |
Type used for representing nanoseconds. | |
Public Member Functions | |
TimeValue () | |
Default construct a time value, initializing to ZeroTime. | |
TimeValue (SecondsType seconds, NanoSecondsType nanos=0) | |
Explicit constructor. | |
TimeValue (double new_time) | |
Double Constructor. | |
TimeValue & | operator+= (const TimeValue &that) |
Incrementing assignment operator. | |
TimeValue & | operator-= (const TimeValue &that) |
Decrementing assignment operator. | |
int | operator< (const TimeValue &that) const |
True if this < that. | |
int | operator> (const TimeValue &that) const |
True if this > that. | |
int | operator<= (const TimeValue &that) const |
True if this <= that. | |
int | operator>= (const TimeValue &that) const |
int | operator== (const TimeValue &that) const |
int | operator!= (const TimeValue &that) const |
SecondsType | seconds () const |
Retrieve the seconds component. | |
NanoSecondsType | nanoseconds () const |
Retrieve the nanoseconds component. | |
uint32_t | microseconds () const |
Retrieve the fractional part as microseconds;. | |
uint32_t | milliseconds () const |
Retrieve the fractional part as milliseconds;. | |
uint64_t | usec () const |
Convert to a number of microseconds (can overflow) | |
uint64_t | msec () const |
Convert to a number of milliseconds (can overflow) | |
uint64_t | toEpochTime () const |
uint64_t | toWin32Time () const |
Convert to Win32's FILETIME (100ns intervals since 00:00:00 Jan 1, 1601 UTC) | |
void | getTimespecTime (uint64_t &seconds, uint32_t &nanos) const |
Convert to timespec time (ala POSIX.1b) | |
std::string | str () const |
Convert time to a string. | |
void | seconds (SecondsType sec) |
Set the seconds component. | |
void | nanoseconds (NanoSecondsType nanos) |
Set the nanoseconds component using a number of nanoseconds. | |
void | microseconds (int32_t micros) |
Set the nanoseconds component using a number of microseconds. | |
void | milliseconds (int32_t millis) |
Set the nanoseconds component using a number of milliseconds. | |
void | usec (int64_t microseconds) |
Converts from microsecond format to TimeValue format. | |
void | msec (int64_t milliseconds) |
Converts from millisecond format to TimeValue format. | |
void | fromEpochTime (SecondsType seconds) |
Convert seconds form PosixTime to TimeValue. | |
void | fromWin32Time (uint64_t win32Time) |
Convert seconds form Windows FILETIME to TimeValue. | |
Static Public Member Functions | |
static TimeValue | now () |
Creates a TimeValue with the current time (UTC). | |
Constants | |
static TimeValue | MinTime () |
The smallest possible time value. | |
static TimeValue | MaxTime () |
The largest possible time value. | |
static TimeValue | ZeroTime () |
00:00:00 Jan 1, 2000 UTC. | |
static TimeValue | PosixZeroTime () |
00:00:00 Jan 1, 1970 UTC. | |
static TimeValue | Win32ZeroTime () |
00:00:00 Jan 1, 1601 UTC. | |
Friends | |
TimeValue | operator+ (const TimeValue &tv1, const TimeValue &tv2) |
Addition operator. | |
TimeValue | operator- (const TimeValue &tv1, const TimeValue &tv2) |
Subtraction operator. |
Provides an abstraction for a fixed point in time.
This class is used where a precise fixed point in time is required. The range of TimeValue spans many hundreds of billions of years both past and present. The precision of TimeValue is to the nanosecond. However, the actual precision of its values will be determined by the resolution of the system clock. The TimeValue class is used in conjunction with several other lib/System interfaces to specify the time at which a call should timeout, etc.
Definition at line 31 of file TimeValue.h.
typedef int32_t llvm::sys::TimeValue::NanoSecondsType |
Type used for representing nanoseconds.
Definition at line 77 of file TimeValue.h.
typedef int64_t llvm::sys::TimeValue::SecondsType |
Type used for representing seconds.
Definition at line 76 of file TimeValue.h.
Definition at line 79 of file TimeValue.h.
llvm::sys::TimeValue::TimeValue | ( | ) | [inline] |
Default construct a time value, initializing to ZeroTime.
Definition at line 91 of file TimeValue.h.
Referenced by MaxTime(), MinTime(), PosixZeroTime(), Win32ZeroTime(), and ZeroTime().
llvm::sys::TimeValue::TimeValue | ( | SecondsType | seconds, |
NanoSecondsType | nanos = 0 |
||
) | [inline, explicit] |
Explicit constructor.
Caller provides the exact value in seconds and nanoseconds. The nanos
argument defaults to zero for convenience.
Definition at line 96 of file TimeValue.h.
llvm::sys::TimeValue::TimeValue | ( | double | new_time | ) | [inline, explicit] |
Double Constructor.
Caller provides the exact value as a double in seconds with the fractional part representing nanoseconds.
Definition at line 102 of file TimeValue.h.
References NANOSECONDS_PER_SECOND.
void llvm::sys::TimeValue::fromEpochTime | ( | SecondsType | seconds | ) | [inline] |
Convert seconds form PosixTime to TimeValue.
Converts the seconds
argument from PosixTime to the corresponding TimeValue and assigns that value to this
.
Definition at line 324 of file TimeValue.h.
References MILLISECONDS_PER_SECOND, and NANOSECONDS_PER_MILLISECOND.
Referenced by llvm::object::ArchiveMemberHeader::getLastModified().
void llvm::sys::TimeValue::fromWin32Time | ( | uint64_t | win32Time | ) | [inline] |
Convert seconds form Windows FILETIME to TimeValue.
Converts the win32Time
argument from Windows FILETIME to the corresponding TimeValue and assigns that value to this
.
Definition at line 333 of file TimeValue.h.
void llvm::sys::TimeValue::getTimespecTime | ( | uint64_t & | seconds, |
uint32_t & | nanos | ||
) | const [inline] |
Convert to timespec time (ala POSIX.1b)
Provides the seconds and nanoseconds as results in its arguments after correction for the Posix zero time.
Definition at line 259 of file TimeValue.h.
static TimeValue llvm::sys::TimeValue::MaxTime | ( | ) | [inline, static] |
The largest possible time value.
A constant TimeValue representing the largest time value permissible by the class. MaxTime is some point in the distant future, about 300 billion years AD.
Definition at line 49 of file TimeValue.h.
References INT64_MAX, and TimeValue().
uint32_t llvm::sys::TimeValue::microseconds | ( | ) | const [inline] |
Retrieve the fractional part as microseconds;.
Returns only the fractional portion of the TimeValue rounded down to the nearest microsecond (divide by one thousand).
Definition at line 209 of file TimeValue.h.
Referenced by llvm::TimeRecord::getCurrentTime().
void llvm::sys::TimeValue::microseconds | ( | int32_t | micros | ) | [inline] |
Set the nanoseconds component using a number of microseconds.
The seconds component remains unchanged.
Definition at line 293 of file TimeValue.h.
uint32_t llvm::sys::TimeValue::milliseconds | ( | ) | const [inline] |
Retrieve the fractional part as milliseconds;.
Returns only the fractional portion of the TimeValue rounded down to the nearest millisecond (divide by one million).
Definition at line 216 of file TimeValue.h.
References NANOSECONDS_PER_MICROSECOND.
void llvm::sys::TimeValue::milliseconds | ( | int32_t | millis | ) | [inline] |
Set the nanoseconds component using a number of milliseconds.
The seconds component remains unchanged.
Definition at line 300 of file TimeValue.h.
References NANOSECONDS_PER_MICROSECOND.
static TimeValue llvm::sys::TimeValue::MinTime | ( | ) | [inline, static] |
The smallest possible time value.
A constant TimeValue representing the smallest time value permissible by the class. MinTime is some point in the distant past, about 300 billion years BCE.
Definition at line 41 of file TimeValue.h.
References INT64_MIN, and TimeValue().
uint64_t llvm::sys::TimeValue::msec | ( | ) | const [inline] |
Convert to a number of milliseconds (can overflow)
Returns the TimeValue as a number of milliseconds. Note that the value returned can overflow because the range of a uint64_t is smaller than the range of a TimeValue. Nevertheless, this is useful on some operating systems and is therefore provided.
Definition at line 235 of file TimeValue.h.
void llvm::sys::TimeValue::msec | ( | int64_t | milliseconds | ) | [inline] |
Converts from millisecond format to TimeValue format.
Definition at line 314 of file TimeValue.h.
References MICROSECONDS_PER_SECOND, and NANOSECONDS_PER_MICROSECOND.
NanoSecondsType llvm::sys::TimeValue::nanoseconds | ( | ) | const [inline] |
Retrieve the nanoseconds component.
Returns only the nanoseconds component of the TimeValue. The seconds portion is ignored.
Definition at line 204 of file TimeValue.h.
void llvm::sys::TimeValue::nanoseconds | ( | NanoSecondsType | nanos | ) | [inline] |
Set the nanoseconds component using a number of nanoseconds.
The nanoseconds component of the TimeValue is set to nanos
without modifying the seconds part. This is useful for basic computations involving just the nanoseconds portion. Note that the TimeValue will be normalized after this call so that the fractional (nanoseconds) portion will have the smallest equivalent value.
Definition at line 286 of file TimeValue.h.
static TimeValue llvm::sys::TimeValue::now | ( | ) | [static] |
Creates a TimeValue with the current time (UTC).
This is a static constructor that returns a TimeValue that represents the current time.
Referenced by llvm::PMDataManager::dumpPassInfo(), and getElapsedWallTime().
Determines if two TimeValue objects represent times that are not the same.
Definition at line 181 of file TimeValue.h.
Incrementing assignment operator.
Add that
to this
.
Definition at line 121 of file TimeValue.h.
Decrementing assignment operator.
Subtract that
from this
.
Definition at line 131 of file TimeValue.h.
True if this < that.
Determine if this
is less than that
.
Definition at line 141 of file TimeValue.h.
True if this <= that.
Determine if this
is less than or equal to that
.
Definition at line 158 of file TimeValue.h.
Determines if two TimeValue objects represent the same moment in time.
Definition at line 173 of file TimeValue.h.
True if this > that.
Determine if this
is greather than that
.
Definition at line 146 of file TimeValue.h.
Determine if this
is greater than or equal to that
.
Definition at line 162 of file TimeValue.h.
static TimeValue llvm::sys::TimeValue::PosixZeroTime | ( | ) | [inline, static] |
00:00:00 Jan 1, 1970 UTC.
A constant TimeValue for the Posix base time which is 00:00:00 (midnight) January 1st, 1970.
Definition at line 63 of file TimeValue.h.
References TimeValue().
SecondsType llvm::sys::TimeValue::seconds | ( | ) | const [inline] |
Retrieve the seconds component.
Returns only the seconds component of the TimeValue. The nanoseconds portion is ignored. No rounding is performed.
Definition at line 199 of file TimeValue.h.
Referenced by llvm::TimeRecord::getCurrentTime().
void llvm::sys::TimeValue::seconds | ( | SecondsType | sec | ) | [inline] |
Set the seconds component.
The seconds component of the TimeValue is set to sec
without modifying the nanoseconds part. This is useful for whole second arithmetic.
Definition at line 275 of file TimeValue.h.
std::string llvm::sys::TimeValue::str | ( | ) | const |
Convert time to a string.
Provides conversion of the TimeValue into a readable time & date.
Referenced by llvm::PMDataManager::dumpPassInfo().
uint64_t llvm::sys::TimeValue::toEpochTime | ( | ) | const [inline] |
Converts the TimeValue into the corresponding number of seconds since the epoch (00:00:00 Jan 1,1970).
Definition at line 242 of file TimeValue.h.
References MILLISECONDS_PER_SECOND, and NANOSECONDS_PER_MILLISECOND.
uint64_t llvm::sys::TimeValue::toWin32Time | ( | ) | const [inline] |
Convert to Win32's FILETIME (100ns intervals since 00:00:00 Jan 1, 1601 UTC)
Converts the TimeValue into the corresponding number of "ticks" for Win32 platforms, correcting for the difference in Win32 zero time.
Definition at line 250 of file TimeValue.h.
uint64_t llvm::sys::TimeValue::usec | ( | ) | const [inline] |
Convert to a number of microseconds (can overflow)
Returns the TimeValue as a number of microseconds. Note that the value returned can overflow because the range of a uint64_t is smaller than the range of a TimeValue. Nevertheless, this is useful on some operating systems and is therefore provided.
Definition at line 225 of file TimeValue.h.
void llvm::sys::TimeValue::usec | ( | int64_t | microseconds | ) | [inline] |
Converts from microsecond format to TimeValue format.
Definition at line 306 of file TimeValue.h.
static TimeValue llvm::sys::TimeValue::Win32ZeroTime | ( | ) | [inline, static] |
00:00:00 Jan 1, 1601 UTC.
A constant TimeValue for the Win32 base time which is 00:00:00 (midnight) January 1st, 1601.
Definition at line 70 of file TimeValue.h.
References TimeValue().
static TimeValue llvm::sys::TimeValue::ZeroTime | ( | ) | [inline, static] |
00:00:00 Jan 1, 2000 UTC.
A constant TimeValue representing the base time, or zero time of 00:00:00 (midnight) January 1st, 2000.
Definition at line 56 of file TimeValue.h.
References TimeValue().
Addition operator.
Adds two TimeValue objects together.
Definition at line 371 of file TimeValue.h.
Subtraction operator.
Subtracts two TimeValue objects.
Definition at line 377 of file TimeValue.h.