|
|
Boost.Threadsxtime |
Introduction
Header
Synopsis
Reference
Example
The xtime type is used to represent a point on some time scale or
a duration in time. This type may be proposed for the C standard by Markus Kuhn.
Boost.Threads provides only a very minimal implementation of this proposal
and it's expected that a full implementation will be provided in Boost as a separate
library, at which time Boost.Threads will deprecate its implementation.
#include <boost/thread/xtime.hpp>
namespace boost {
enum
{
TIME_UTC=1,
};
struct xtime
{
#if defined(BOOST_NO_INT64_T)
int_fast32_t sec;
#else
int_fast64_t sec;
#endif
int_fast32_t nsec;
};
int xtime_get(struct xtime* xtp, int clock_type);
} // namespace boost
The clock type for Coordinated Universal Time (UTC). The epoch for this clock type is 1970-01-01 00:00:00. This is the only clock type supported by Boost.Threads.
struct xtime
{
#if defined(BOOST_NO_INT64_T)
int_fast32_t sec;
#else
int_fast64_t sec;
#endif
int_fast32_t nsec;
};
sec represents the whole seconds that have passed since the epoch.
nsec represents the nanoseconds since sec.
int xtime_get(struct xtime* xtp, int clock_type);
Postcondition: xtp represents the current point in time
as a duration since the epoch specified by the clock_type.
Returns: clock_type if successful, otherwise 0.
Notes: The resolution is implementation specific. For many
implementations the best resolution of time is far more than one nanosecond, and
even when the resolution is reasonably good, the latency of a call to xtime_get()
may be significant. For maximum portability, avoid durations of less than
one second.
#include <boost/thread/thread.hpp>
#include <boost/thread/xtime.hpp>
int main(int argc, char* argv[])
{
boost::xtime xt;
boost::xtime_get(&xt, boost::TIME_UTC);
xt.sec += 1;
boost::thread::sleep(xt); // Sleep for 1 second
}
Revised 01 October, 2001
© Copyright William E. Kempf 2001 all rights reserved.