diff options
Diffstat (limited to 'src/third_party/boost-1.60.0/libs/chrono/stopwatches/include/boost/chrono/stopwatches/reporters/stopclock.hpp')
-rwxr-xr-x | src/third_party/boost-1.60.0/libs/chrono/stopwatches/include/boost/chrono/stopwatches/reporters/stopclock.hpp | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/src/third_party/boost-1.60.0/libs/chrono/stopwatches/include/boost/chrono/stopwatches/reporters/stopclock.hpp b/src/third_party/boost-1.60.0/libs/chrono/stopwatches/include/boost/chrono/stopwatches/reporters/stopclock.hpp new file mode 100755 index 00000000000..937cabdd459 --- /dev/null +++ b/src/third_party/boost-1.60.0/libs/chrono/stopwatches/include/boost/chrono/stopwatches/reporters/stopclock.hpp @@ -0,0 +1,175 @@ +// boost/chrono/stopwatches/reporters/stopclock.hpp +// Copyright 2011 Vicente J. Botet Escriba +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or +// copy at http://www.boost.org/LICENSE_1_0.txt) +// See http://www.boost.org/libs/chrono/stopwatches for documentation. + +#ifndef BOOST_CHRONO_STOPWATCHES_REPORTERS_LAPS_STOPCLOCK_HPP +#define BOOST_CHRONO_STOPWATCHES_REPORTERS_LAPS_STOPCLOCK_HPP + +#include <boost/chrono/config.hpp> + +#if !defined(BOOST_ENABLE_WARNINGS) && !defined(BOOST_CHRONO_ENABLE_WARNINGS) +#if defined __GNUC__ +#pragma GCC system_header +#elif defined __SUNPRO_CC +#pragma disable_warn +#elif defined _MSC_VER +#pragma warning(push, 1) +#endif +#endif + +#include <boost/chrono/stopwatches/reporters/laps_accumulator_set_stopwatch_default_formatter.hpp> +#include <boost/chrono/stopwatches/reporters/stopwatch_reporter_default_formatter.hpp> +#include <boost/chrono/stopwatches/reporters/stopwatch_reporter.hpp> +#include <boost/chrono/stopwatches/stopwatch_scoped.hpp> +#include <boost/chrono/stopwatches/stopwatch.hpp> +#include <boost/chrono/stopwatches/dont_start.hpp> +#include <boost/chrono/chrono.hpp> +#include <boost/chrono/detail/system.hpp> +#include <boost/cstdint.hpp> +#include <cassert> + +namespace boost +{ + namespace chrono + { + + template<class CharT, typename Clock, typename LapsCollector, class Formatter> + class basic_stopclock: public basic_stopwatch_reporter<CharT, stopwatch<Clock, LapsCollector>, Formatter> + { + public: + typedef basic_stopwatch_reporter<CharT, stopwatch<Clock, LapsCollector>, Formatter> base_type; + typedef Clock clock; + typedef stopwatch<Clock, LapsCollector> stopwatch_type; + typedef Formatter formatter_type; + + basic_stopclock() + { + } + +#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + explicit basic_stopclock(system::error_code & ec) : + base_type(ec) + { + } +#endif + explicit basic_stopclock( + const dont_start_t& tag + ) BOOST_NOEXCEPT : + base_type(tag) + { + } + + explicit basic_stopclock(formatter_type const& fmt) : + base_type(fmt) + { + } + + explicit basic_stopclock(const typename Formatter::char_type* fmt) : + base_type(fmt) + { + } + explicit basic_stopclock(typename Formatter::string_type const& fmt) : + base_type(fmt) + { + } + typedef stopwatch_runner<basic_stopclock<CharT,Clock, LapsCollector, Formatter> > + scoped_run; + typedef stopwatch_stopper<basic_stopclock<CharT,Clock, LapsCollector, Formatter> > + scoped_stop; + typedef stopwatch_suspender<basic_stopclock<CharT,Clock, LapsCollector, Formatter> > + scoped_suspend; + typedef stopwatch_resumer<basic_stopclock<CharT,Clock, LapsCollector, Formatter> > + scoped_resume; + + protected: + + basic_stopclock(const basic_stopclock&); // = delete; + basic_stopclock& operator=(const basic_stopclock&); // = delete; + }; + + + template<typename Clock=high_resolution_clock, typename LapsCollector=no_memory<typename Clock::duration>, + class Formatter = typename basic_stopwatch_reporter_default_formatter<char, stopwatch<Clock, LapsCollector> >::type> + class stopclock; + + template<class Stopwatch, class Formatter> + struct basic_stopwatch_reporter_default_formatter<char, stopclock<Stopwatch, + Formatter> > + { + typedef Formatter type; + }; + + template<typename Clock, typename LapsCollector, class Formatter> + class stopclock: public basic_stopclock<char, Clock, LapsCollector, Formatter> + { + typedef basic_stopclock<char, Clock, LapsCollector, Formatter> base_type; + public: + typedef Clock clock; + typedef typename base_type::stopwatch_type stopwatch_type; + typedef Formatter formatter_type; + + stopclock() + { + } + +#if !defined BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING + explicit stopclock(system::error_code & ec) : + base_type(ec) + { + } +#endif + explicit stopclock( + const dont_start_t& tag + ) BOOST_NOEXCEPT : + base_type(tag) + { + } + + explicit stopclock(formatter_type const& fmt) : + base_type(fmt) + { + } + + explicit stopclock(const typename Formatter::char_type* fmt) : + base_type(fmt) + { + } + explicit stopclock(typename Formatter::string_type const& fmt) : + base_type(fmt) + { + } + typedef stopwatch_runner<stopclock<Clock, LapsCollector, Formatter> > + scoped_run; + typedef stopwatch_stopper<stopclock<Clock, LapsCollector, Formatter> > + scoped_stop; + typedef stopwatch_suspender<stopclock<Clock, LapsCollector, Formatter> > + scoped_suspend; + typedef stopwatch_resumer<stopclock<Clock, LapsCollector, Formatter> > + scoped_resume; + + protected: + + stopclock(const stopclock&); // = delete; + stopclock& operator=(const stopclock&); // = delete; + }; + + + + } // namespace chrono +} // namespace boost + + +#if !defined(BOOST_ENABLE_WARNINGS) && !defined(BOOST_CHRONO_ENABLE_WARNINGS) +#if defined __SUNPRO_CC +#pragma enable_warn +#elif defined _MSC_VER +#pragma warning(pop) +#endif +#endif + +#endif + + |