ClockCycleCounter.h Example Filedemos/spectrum/3rdparty/fftreal/stopwatch/ClockCycleCounter.h/***************************************************************************** ClockCycleCounter.h Copyright (c) 2003 Laurent de Soras Instrumentation class, for accurate time interval measurement. You may have to modify the implementation to adapt it to your system and/or compiler. --- Legal stuff --- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *Tab=3***********************************************************************/ #if ! defined (stopwatch_ClockCycleCounter_HEADER_INCLUDED) #define stopwatch_ClockCycleCounter_HEADER_INCLUDED #if defined (_MSC_VER) #pragma once #pragma warning (4 : 4250) // "Inherits via dominance." #endif /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ #include "def.h" #include "Int64.h" namespace stopwatch { class ClockCycleCounter { /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ public: ClockCycleCounter (); stopwatch_FORCEINLINE void start (); stopwatch_FORCEINLINE void stop_lap (); Int64 get_time_total () const; Int64 get_time_best_lap () const; /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ protected: /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: void compute_clk_mul (); void compute_measure_time_total (); void compute_measure_time_lap (); static void spend_time (); static stopwatch_FORCEINLINE Int64 read_clock_counter (); Int64 _start_time; Int64 _state; Int64 _best_score; static Int64 _measure_time_total; static Int64 _measure_time_lap; static int _clk_mul; static bool _init_flag; /*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ private: ClockCycleCounter (const ClockCycleCounter &other); ClockCycleCounter & operator = (const ClockCycleCounter &other); bool operator == (const ClockCycleCounter &other); bool operator != (const ClockCycleCounter &other); }; // class ClockCycleCounter } // namespace stopwatch #include "ClockCycleCounter.hpp" #endif // stopwatch_ClockCycleCounter_HEADER_INCLUDED /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ © 2008-2011 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. Privacy Policy Licensees holding valid Qt Commercial licenses may use this document in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Nokia. Alternatively, this document may be used under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. |