/Src/Dependencies/Boost/boost/chrono/detail/inlined/process_cpu_clocks.hpp

http://hadesmem.googlecode.com/ · C++ Header · 80 lines · 49 code · 16 blank · 15 comment · 0 complexity · 3a602491bd6b7d2a677593121967e1e1 MD5 · raw file

  1. // boost process_cpu_clocks.cpp -----------------------------------------------------------//
  2. // Copyright 2009-2010 Vicente J. Botet Escriba
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // See http://www.boost.org/LICENSE_1_0.txt
  5. // See http://www.boost.org/libs/chrono for documentation.
  6. //--------------------------------------------------------------------------------------//
  7. #ifndef BOOST_CHRONO_DETAIL_INLINED_PROCESS_CPU_CLOCKS_HPP
  8. #define BOOST_CHRONO_DETAIL_INLINED_PROCESS_CPU_CLOCKS_HPP
  9. #include <boost/chrono/config.hpp>
  10. #include <boost/version.hpp>
  11. #include <boost/chrono/process_cpu_clocks.hpp>
  12. #include <boost/throw_exception.hpp>
  13. #include <boost/system/system_error.hpp>
  14. //----------------------------------------------------------------------------//
  15. // Windows //
  16. //----------------------------------------------------------------------------//
  17. #if defined(BOOST_CHRONO_WINDOWS_API)
  18. #include <boost/chrono/detail/inlined/win/process_cpu_clocks.hpp>
  19. //----------------------------------------------------------------------------//
  20. // Mac //
  21. //----------------------------------------------------------------------------//
  22. #elif defined(BOOST_CHRONO_MAC_API)
  23. #include <boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp>
  24. //----------------------------------------------------------------------------//
  25. // POSIX //
  26. //----------------------------------------------------------------------------//
  27. #elif defined(BOOST_CHRONO_POSIX_API)
  28. #include <boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp>
  29. #endif // POSIX
  30. #if 0
  31. namespace boost { namespace chrono {
  32. process_real_cpu_clock::time_point process_real_cpu_clock::now(
  33. system::error_code & ec)
  34. {
  35. process_times t;
  36. process_clock::now(t, ec);
  37. return process_real_cpu_clock::time_point(t.real);
  38. }
  39. process_user_cpu_clock::time_point process_user_cpu_clock::now(
  40. system::error_code & ec)
  41. {
  42. process_times t;
  43. process_clock::now(t, ec);
  44. return process_user_cpu_clock::time_point(t.user);
  45. }
  46. process_system_cpu_clock::time_point process_system_cpu_clock::now(
  47. system::error_code & ec)
  48. {
  49. process_times t;
  50. process_clock::now(t, ec);
  51. return process_system_cpu_clock::time_point(t.system);
  52. }
  53. process_cpu_clock::time_point process_cpu_clock::now(
  54. system::error_code & ec )
  55. {
  56. process_times t;
  57. process_clock::now(t,ec);
  58. time_point::rep r(t.real.count(), t.user.count(), t.system.count());
  59. return time_point(duration(r));
  60. }
  61. } // namespace chrono
  62. } // namespace boost
  63. #endif
  64. #endif