1 /*-----------------------------------------------------------------------------+
2 Copyright (c) 2011-2011: Joachim Faulhaber
3 +------------------------------------------------------------------------------+
4    Distributed under the Boost Software License, Version 1.0.
5       (See accompanying file LICENCE.txt or copy at
6            http://www.boost.org/LICENSE_1_0.txt)
7 +-----------------------------------------------------------------------------*/
8 #ifndef BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
9 #define BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
10 
11 #include <boost/chrono/chrono.hpp>
12 #include <boost/chrono/chrono_io.hpp>
13 
14 // In order to perform simple testing with chrono::time_point
15 // we need to provide a dummy test clock
16 
17 class Now // A trivial test clock
18 {
19 public:
20     typedef boost::chrono::duration<int>   duration;
21     typedef duration::rep                  rep;
22     typedef duration::period               periond;
23     typedef boost::chrono::time_point<Now> time_point;
24 
now()25     static time_point now(){ return time_point(); }
26 };
27 
28 namespace boost{ namespace chrono {
29 
30 template <class CharT>
31 struct clock_string<Now, CharT>
32 {
nameboost::chrono::clock_string33     static std::basic_string<CharT> name()
34     {
35         static const CharT u[] = {'n', 'o', 'w', '_', 'c', 'l','o', 'c', 'k'};
36         static const std::basic_string<CharT> str(u, u + sizeof(u)/sizeof(u[0]));
37         return str;
38     }
sinceboost::chrono::clock_string39     static std::basic_string<CharT> since()
40     {
41         const CharT u[] = {' ', 's', 'i', 'n', 'c', 'e', ' ', 'n', 'o', 'w'};
42         const std::basic_string<CharT> str(u, u + sizeof(u)/sizeof(u[0]));
43         return str;
44     }
45 };
46 
47 }} //namespace boost chrono
48 
49 #endif //BOOST_LIBS_ICL_TEST_CHRONO_UTILITY_HPP_JOFA_20110314
50