Chris@16: // boost/chrono/thread_clock.hpp -----------------------------------------------------------// Chris@16: Chris@16: // Copyright 2009-2011 Vicente J. Botet Escriba Chris@16: Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // See http://www.boost.org/LICENSE_1_0.txt Chris@16: Chris@16: // See http://www.boost.org/libs/system for documentation. Chris@16: Chris@16: #include Chris@16: Chris@16: #ifndef BOOST_CHRONO_THREAD_CLOCK_HPP Chris@16: #define BOOST_CHRONO_THREAD_CLOCK_HPP Chris@16: Chris@16: #if defined(BOOST_CHRONO_HAS_THREAD_CLOCK) Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: #ifndef BOOST_CHRONO_HEADER_ONLY Chris@16: #include // must be the last #include Chris@16: #endif Chris@16: Chris@16: namespace boost { namespace chrono { Chris@16: Chris@16: class BOOST_CHRONO_DECL thread_clock { Chris@16: public: Chris@16: typedef nanoseconds duration; Chris@16: typedef duration::rep rep; Chris@16: typedef duration::period period; Chris@16: typedef chrono::time_point time_point; Chris@16: BOOST_STATIC_CONSTEXPR bool is_steady = BOOST_CHRONO_THREAD_CLOCK_IS_STEADY; Chris@16: Chris@16: static BOOST_CHRONO_INLINE time_point now( ) BOOST_NOEXCEPT; Chris@16: #if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING Chris@16: static BOOST_CHRONO_INLINE time_point now( system::error_code & ec ); Chris@16: #endif Chris@16: }; Chris@16: Chris@16: template Chris@16: struct clock_string Chris@16: { Chris@16: static std::basic_string name() Chris@16: { Chris@16: static const CharT u[] = Chris@16: { 't', 'h', 'r', 'e', 'a', 'd', '_', Chris@16: 'c', 'l','o', 'c', 'k'}; Chris@16: static const std::basic_string str(u, u + sizeof(u)/sizeof(u[0])); Chris@16: return str; Chris@16: } Chris@16: static std::basic_string since() Chris@16: { Chris@16: const CharT u[] = Chris@16: { ' ', 's', 'i', 'n', 'c', 'e', ' ', 't', 'h', 'r', 'e', 'a', 'd', ' ', 's', 't', 'a', 'r', 't', '-', 'u', 'p'}; Chris@16: const std::basic_string str(u, u + sizeof(u)/sizeof(u[0])); Chris@16: return str; Chris@16: } Chris@16: }; Chris@16: Chris@16: } // namespace chrono Chris@16: } // namespace boost Chris@16: Chris@16: Chris@16: #ifndef BOOST_CHRONO_HEADER_ONLY Chris@16: #include // pops abi_prefix.hpp pragmas Chris@16: #else Chris@16: #include Chris@16: #endif Chris@16: Chris@16: #endif Chris@16: Chris@16: #endif // BOOST_CHRONO_THREAD_CLOCK_HPP