|
|
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 05 November, 2001
© Copyright William E. Kempf 2001 all rights reserved.