blob: 17ea6ad5d0043a3b357e2492e41d7634fc8291f7 [file] [log] [blame] [view]
---
layout: doc
title: "Starboard Module Reference: time.h"
---
Provides access to system time and timers.
## Macros ##
### kSbTimeDay ###
One day in SbTime units (microseconds).
### kSbTimeHour ###
One hour in SbTime units (microseconds).
### kSbTimeMax ###
The maximum value of an SbTime.
### kSbTimeMillisecond ###
One millisecond in SbTime units (microseconds).
### kSbTimeMinute ###
One minute in SbTime units (microseconds).
### kSbTimeNanosecondsPerMicrosecond ###
How many nanoseconds in one SbTime unit (microseconds).
### kSbTimeSecond ###
One second in SbTime units (microseconds).
### kSbTimeToPosixDelta ###
A term that can be added to an SbTime to convert it into the number of
microseconds since the POSIX epoch.
## Typedefs ##
### SbTime ###
The number of microseconds since the epoch of January 1, 1601 UTC, or the number
of microseconds between two times. Always microseconds, ALWAYS UTC.
#### Definition ####
```
typedef int64_t SbTime
```
### SbTimeMonotonic ###
A number of microseconds from some point. The main property of this time is that
it increases monotonically. It should also be as high-resolution a timer as we
can get on a platform. So, it is good for measuring the time between two calls
without worrying about a system clock adjustment. It's not good for getting the
wall clock time.
#### Definition ####
```
typedef int64_t SbTimeMonotonic
```
## Functions ##
### SbTimeFromPosix ###
Converts microseconds from the POSIX epoch into an `SbTime`.
`time`: A time that measures the number of microseconds since January 1, 1970,
00:00:00, UTC.
#### Declaration ####
```
static SbTime SbTimeFromPosix(int64_t time)
```
### SbTimeGetMonotonicNow ###
Gets a monotonically increasing time representing right now.
#### Declaration ####
```
SbTimeMonotonic SbTimeGetMonotonicNow()
```
### SbTimeGetMonotonicThreadNow ###
Gets a monotonically increasing time representing how long the current thread
has been in the executing state (i.e. not pre-empted nor waiting on an event).
This is not necessarily total time and is intended to allow measuring thread
execution time between two timestamps. If this is not available then
SbTimeGetMonotonicNow() should be used.
#### Declaration ####
```
SbTimeMonotonic SbTimeGetMonotonicThreadNow()
```
### SbTimeGetNow ###
Gets the current system time as an `SbTime`.
#### Declaration ####
```
SbTime SbTimeGetNow()
```
### SbTimeIsTimeThreadNowSupported ###
Returns whether the current platform supports time thread now
#### Declaration ####
```
bool SbTimeIsTimeThreadNowSupported()
```
### SbTimeNarrow ###
Safely narrows a number from a more precise unit to a less precise one. This
function rounds negative values toward negative infinity.
#### Declaration ####
```
static int64_t SbTimeNarrow(int64_t time, int64_t divisor)
```
### SbTimeToPosix ###
Converts `SbTime` into microseconds from the POSIX epoch.
`time`: A time that is either measured in microseconds since the epoch of
January 1, 1601, UTC, or that measures the number of microseconds between two
times.
#### Declaration ####
```
static int64_t SbTimeToPosix(SbTime time)
```