Chris@16
|
1 #ifndef BOOST_THREAD_TIME_HPP
|
Chris@16
|
2 #define BOOST_THREAD_TIME_HPP
|
Chris@16
|
3 // (C) Copyright 2007 Anthony Williams
|
Chris@16
|
4 //
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0. (See
|
Chris@16
|
6 // accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
7 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8
|
Chris@16
|
9 #include <boost/date_time/time_clock.hpp>
|
Chris@16
|
10 #include <boost/date_time/microsec_time_clock.hpp>
|
Chris@16
|
11 #include <boost/date_time/posix_time/posix_time_types.hpp>
|
Chris@16
|
12
|
Chris@16
|
13 #include <boost/config/abi_prefix.hpp>
|
Chris@16
|
14
|
Chris@16
|
15 namespace boost
|
Chris@16
|
16 {
|
Chris@16
|
17 typedef boost::posix_time::ptime system_time;
|
Chris@16
|
18
|
Chris@16
|
19 inline system_time get_system_time()
|
Chris@16
|
20 {
|
Chris@16
|
21 #if defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK)
|
Chris@16
|
22 return boost::date_time::microsec_clock<system_time>::universal_time();
|
Chris@16
|
23 #else // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK)
|
Chris@16
|
24 return boost::date_time::second_clock<system_time>::universal_time();
|
Chris@16
|
25 #endif // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK)
|
Chris@16
|
26 }
|
Chris@16
|
27
|
Chris@16
|
28 namespace detail
|
Chris@16
|
29 {
|
Chris@16
|
30 inline system_time get_system_time_sentinel()
|
Chris@16
|
31 {
|
Chris@16
|
32 return system_time(boost::posix_time::pos_infin);
|
Chris@16
|
33 }
|
Chris@16
|
34
|
Chris@16
|
35 inline unsigned long get_milliseconds_until(system_time const& target_time)
|
Chris@16
|
36 {
|
Chris@16
|
37 if(target_time.is_pos_infinity())
|
Chris@16
|
38 {
|
Chris@16
|
39 return ~(unsigned long)0;
|
Chris@16
|
40 }
|
Chris@16
|
41 system_time const now=get_system_time();
|
Chris@16
|
42 if(target_time<=now)
|
Chris@16
|
43 {
|
Chris@16
|
44 return 0;
|
Chris@16
|
45 }
|
Chris@16
|
46 return static_cast<unsigned long>((target_time-now).total_milliseconds()+1);
|
Chris@16
|
47 }
|
Chris@16
|
48
|
Chris@16
|
49 }
|
Chris@16
|
50
|
Chris@16
|
51 }
|
Chris@16
|
52
|
Chris@16
|
53 #include <boost/config/abi_suffix.hpp>
|
Chris@16
|
54
|
Chris@16
|
55 #endif
|