C++ Boost

Boost.Threads

xtime


Introduction
Header
Synopsis
Reference
Example

Introduction

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.

Header

#include <boost/thread/xtime.hpp>

Synopsis

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

Reference


TIME_UTC

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.


xtime

   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.


xtime_get

   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.


Example Usage

#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.