RTI Connext DDS Micro C API
Version 3.0.3
|
Data Structures | |
struct | OSAPI_NtpTime |
NtpTime API. More... |
Macros | |
#define | OSAPI_NTP_TIME_SEC_MAX ((RTI_INT32)0x7fffffff) |
#define | OSAPI_NTP_TIME_FRAC_MAX ((RTI_UINT32)0xffffffff) |
#define | OSAPI_NtpTime_increment(answer, time) |
answer += time. | |
#define | OSAPI_NtpTime_decrement(answer, time) |
Decrement one struct OSAPI_NtpTime value by another struct OSAPI_NtpTime value. | |
#define | OSAPI_NTP_TIME_ZERO {0,0} |
Zero time. | |
#define | OSAPI_NTP_TIME_MAX {OSAPI_NTP_TIME_SEC_MAX,OSAPI_NTP_TIME_FRAC_MAX} |
#define | OSAPI_NTP_TIME_NSEC_PER_SEC (1000000000) |
#define | OSAPI_NTP_TIME_USEC_PER_SEC (1000000) |
#define | OSAPI_NTP_TIME_MSEC_PER_SEC (1000) |
#define | OSAPI_NTP_TIME_NSEC_PER_USEC (1000) |
#define | OSAPI_NTP_TIME_USEC_PER_MSEC (1000) |
#define | OSAPI_NTP_TIME_SEC_PER_SEC (1) |
#define | OSAPI_NTP_TIME_NSEC_PER_MSEC (1000000) |
Typedefs | |
typedef struct OSAPI_NtpTime | OSAPI_NtpTime |
NtpTime API. |
Functions | |
void | OSAPI_NtpTime_from_millisec (struct OSAPI_NtpTime *const time, RTI_INT32 s, RTI_UINT32 msec) |
Macro to convert from seconds and milliseconds to struct OSAPI_NtpTime format. | |
void | OSAPI_NtpTime_to_millisec (RTI_INT32 *const s, RTI_UINT32 *const msec, const struct OSAPI_NtpTime *const time) |
Macro to convert from struct OSAPI_NtpTime to seconds and milliseconds. | |
void | OSAPI_NtpTime_from_microsec (struct OSAPI_NtpTime *const time, RTI_INT32 s, RTI_UINT32 usec) |
Macro to convert from seconds and microseconds to struct OSAPI_NtpTime format. | |
void | OSAPI_NtpTime_to_microsec (RTI_INT32 *const s, RTI_UINT32 *const usec, const struct OSAPI_NtpTime *const time) |
Macro to convert from struct OSAPI_NtpTime to seconds and microseconds. | |
void | OSAPI_NtpTime_from_nanosec (struct OSAPI_NtpTime *const time, RTI_INT32 s, RTI_UINT32 nsec) |
Macro to convert from seconds and nanoseconds to struct OSAPI_NtpTime format. | |
void | OSAPI_NtpTime_to_nanosec (RTI_INT32 *const s, RTI_UINT32 *const nsec, const struct OSAPI_NtpTime *const time) |
Macro to convert from struct OSAPI_NtpTime to seconds and nanoseconds. | |
RTI_BOOL | OSAPI_NtpTime_is_infinite (const struct OSAPI_NtpTime *const time) |
void | OSAPI_NtpTime_subtract (struct OSAPI_NtpTime *const answer, const struct OSAPI_NtpTime *const t1, const struct OSAPI_NtpTime *const t2) |
answer = t1 - t2. | |
RTI_INT32 | OSAPI_NtpTime_compare (const struct OSAPI_NtpTime *time1, const struct OSAPI_NtpTime *time2) |
Compare two NTP structures. |
#define OSAPI_NTP_TIME_SEC_MAX ((RTI_INT32)0x7fffffff) |
The maximum number of seconds that can be represented using NTP time.
#define OSAPI_NTP_TIME_FRAC_MAX ((RTI_UINT32)0xffffffff) |
The largest possible value of the fraction field in NTP time.
#define OSAPI_NtpTime_increment | ( | answer, | |
time | |||
) |
answer += time.
This macro does not check for overflow.
answer | struct OSAPI_NtpTime |
time | struct OSAPI_NtpTime |
#define OSAPI_NtpTime_decrement | ( | answer, | |
time | |||
) |
Decrement one struct OSAPI_NtpTime value by another struct OSAPI_NtpTime value.
Precondition: Postcondition: answer -= time.
answer | struct OSAPI_NtpTime |
time | struct OSAPI_NtpTime |
#define OSAPI_NTP_TIME_ZERO {0,0} |
Zero time.
This global variable is for convenience. It allows you to see if a RTITime variable is negative or positive by comparing against this.
#define OSAPI_NTP_TIME_MAX {OSAPI_NTP_TIME_SEC_MAX,OSAPI_NTP_TIME_FRAC_MAX} |
Represents the maximum timevalue that can be represented using the NTP time format. For all practical purposes, it can be considered equivalent to infinity.
#define OSAPI_NTP_TIME_NSEC_PER_SEC (1000000000) |
The number of nanoseconds per second. 1e9.
#define OSAPI_NTP_TIME_USEC_PER_SEC (1000000) |
The number of microseconds per second. 1e6.
#define OSAPI_NTP_TIME_MSEC_PER_SEC (1000) |
The number of milliseconds per second. 1e3.
#define OSAPI_NTP_TIME_NSEC_PER_USEC (1000) |
The number of microseconds per milliseconds. 1e3.
#define OSAPI_NTP_TIME_USEC_PER_MSEC (1000) |
The number of microseconds per milliseconds. 1e3.
#define OSAPI_NTP_TIME_SEC_PER_SEC (1) |
The number of seconds per second. 1.
#define OSAPI_NTP_TIME_NSEC_PER_MSEC (1000000) |
The number of nano seconds per milli second. 1e6.
typedef struct OSAPI_NtpTime OSAPI_NtpTime |
NtpTime API.
NTP Time representation.
Expresses time in NTP format. The second field is simply an integer expressing seconds. The fraction field expresses 1/2^32 of a second. We strongly urge customers to use our provided macros to convert this format to and from human readable form.
Example:
The following is a simple example on how to prepare a struct OSAPI_NtpTime structure to be 1.5 seconds.
* struct OSAPI_NtpTime ntpTime; * * OSAPI_NtpTime_from_millisec(ntpTime, 1, 500); *
void OSAPI_NtpTime_from_millisec | ( | struct OSAPI_NtpTime *const | time, |
RTI_INT32 | s, | ||
RTI_UINT32 | msec | ||
) |
Macro to convert from seconds and milliseconds to struct OSAPI_NtpTime format.
This macro assumes that msec < 1000. It is the caller's responsibility to ensure this.
time | Contains the answer. |
s | Seconds to convert. |
msec | Milliseconds to convert. |
void OSAPI_NtpTime_to_millisec | ( | RTI_INT32 *const | s, |
RTI_UINT32 *const | msec, | ||
const struct OSAPI_NtpTime *const | time | ||
) |
Macro to convert from struct OSAPI_NtpTime to seconds and milliseconds.
This macro does not check for overflow, so for a near-infinite time value, the conversion result may end up being negative. It is the responsibility of the user to avoid passing these large time values.
s | Holds the seconds answer. |
msec | Holds the millisecond answer. |
time | The time to convert to second(s) and millisecond(s). |
void OSAPI_NtpTime_from_microsec | ( | struct OSAPI_NtpTime *const | time, |
RTI_INT32 | s, | ||
RTI_UINT32 | usec | ||
) |
Macro to convert from seconds and microseconds to struct OSAPI_NtpTime format.
This macro does not check for overflow, so for a near-infinite time value, the conversion result may end up being negative. It is the caller's responsibility to avoid passing these large time values.
time | Contains the answer. |
s | Seconds to covert. |
usec | Microseconds to convert. |
void OSAPI_NtpTime_to_microsec | ( | RTI_INT32 *const | s, |
RTI_UINT32 *const | usec, | ||
const struct OSAPI_NtpTime *const | time | ||
) |
Macro to convert from struct OSAPI_NtpTime to seconds and microseconds.
s | Holds the second portion. |
usec | Holds the microsecond fraction. |
time | The time to convert to second(s) and microsecond(s) |
This macro does not check for overflow, so for a near-infinite time value, the conversion result may end up being negative. It is the caller's responsibility to avoid passing these large time values.
void OSAPI_NtpTime_from_nanosec | ( | struct OSAPI_NtpTime *const | time, |
RTI_INT32 | s, | ||
RTI_UINT32 | nsec | ||
) |
Macro to convert from seconds and nanoseconds to struct OSAPI_NtpTime format.
This macro assumes that nsec < 1000000000. It is the caller's responsibility to ensure this. The accuracy of this conversion over the whole range of nanosecond values is at least 1 nanosecond.
time | Holds the answer. |
s | Seconds to convert. |
nsec | Nanoseconds to convert. |
void OSAPI_NtpTime_to_nanosec | ( | RTI_INT32 *const | s, |
RTI_UINT32 *const | nsec, | ||
const struct OSAPI_NtpTime *const | time | ||
) |
Macro to convert from struct OSAPI_NtpTime to seconds and nanoseconds.
The accuracy of this conversion over the whole range of struct OSAPI_NtpTime values is at least 1 nanosecond.
s | Holds the second portion. |
nsec | Holds the nanosecond portion. |
time | Time to convert to second(s) and nanosecond(s). |
RTI_BOOL OSAPI_NtpTime_is_infinite | ( | const struct OSAPI_NtpTime *const | time | ) |
A NULL struct OSAPI_NtpTime pointer is considered infinity. This is consistent with the concept of infinite time on UNIX systems.
In addition, if the seconds field equals OSAPI_NTP_TIME_SEC_MAX, the time value is also considered infinite.
time | Pointer to RTITime. |
void OSAPI_NtpTime_subtract | ( | struct OSAPI_NtpTime *const | answer, |
const struct OSAPI_NtpTime *const | t1, | ||
const struct OSAPI_NtpTime *const | t2 | ||
) |
answer = t1 - t2.
answer | struct OSAPI_NtpTime |
t1 | struct OSAPI_NtpTime` |
t2 | struct OSAPI_NtpTime |
RTI_INT32 OSAPI_NtpTime_compare | ( | const struct OSAPI_NtpTime * | time1, |
const struct OSAPI_NtpTime * | time2 | ||
) |
Compare two NTP structures.
time1 | struct OSAPI_NtpTime |
time2 | struct OSAPI_NtpTime |