1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/stdapis/boost/timer.hpp Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -0,0 +1,72 @@
1.4 +// boost timer.hpp header file ---------------------------------------------//
1.5 +
1.6 +// Copyright Beman Dawes 1994-99. Distributed under the Boost
1.7 +// Software License, Version 1.0. (See accompanying file
1.8 +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1.9 +
1.10 +// See http://www.boost.org/libs/timer for documentation.
1.11 +
1.12 +// Revision History
1.13 +// 01 Apr 01 Modified to use new <boost/limits.hpp> header. (JMaddock)
1.14 +// 12 Jan 01 Change to inline implementation to allow use without library
1.15 +// builds. See docs for more rationale. (Beman Dawes)
1.16 +// 25 Sep 99 elapsed_max() and elapsed_min() added (John Maddock)
1.17 +// 16 Jul 99 Second beta
1.18 +// 6 Jul 99 Initial boost version
1.19 +
1.20 +#ifndef BOOST_TIMER_HPP
1.21 +#define BOOST_TIMER_HPP
1.22 +
1.23 +#include <boost/config.hpp>
1.24 +#include <ctime>
1.25 +#include <boost/limits.hpp>
1.26 +
1.27 +# ifdef BOOST_NO_STDC_NAMESPACE
1.28 + namespace std { using ::clock_t; using ::clock; }
1.29 +# endif
1.30 +
1.31 +
1.32 +namespace boost {
1.33 +
1.34 +// timer -------------------------------------------------------------------//
1.35 +
1.36 +// A timer object measures elapsed time.
1.37 +
1.38 +// It is recommended that implementations measure wall clock rather than CPU
1.39 +// time since the intended use is performance measurement on systems where
1.40 +// total elapsed time is more important than just process or CPU time.
1.41 +
1.42 +// Warnings: The maximum measurable elapsed time may well be only 596.5+ hours
1.43 +// due to implementation limitations. The accuracy of timings depends on the
1.44 +// accuracy of timing information provided by the underlying platform, and
1.45 +// this varies a great deal from platform to platform.
1.46 +
1.47 +class timer
1.48 +{
1.49 + public:
1.50 + timer() { _start_time = std::clock(); } // postcondition: elapsed()==0
1.51 +// timer( const timer& src ); // post: elapsed()==src.elapsed()
1.52 +// ~timer(){}
1.53 +// timer& operator=( const timer& src ); // post: elapsed()==src.elapsed()
1.54 + void restart() { _start_time = std::clock(); } // post: elapsed()==0
1.55 + double elapsed() const // return elapsed time in seconds
1.56 + { return double(std::clock() - _start_time) / CLK_TCK; }
1.57 +
1.58 + double elapsed_max() const // return estimated maximum value for elapsed()
1.59 + // Portability warning: elapsed_max() may return too high a value on systems
1.60 + // where std::clock_t overflows or resets at surprising values.
1.61 + {
1.62 + return (double((std::numeric_limits<std::clock_t>::max)())
1.63 + - double(_start_time)) / double(CLK_TCK);
1.64 + }
1.65 +
1.66 + double elapsed_min() const // return minimum value for elapsed()
1.67 + { return double(1)/double(CLK_TCK); }
1.68 +
1.69 + private:
1.70 + std::clock_t _start_time;
1.71 +}; // timer
1.72 +
1.73 +} // namespace boost
1.74 +
1.75 +#endif // BOOST_TIMER_HPP