#ifndef CLITKTIMER_H #define CLITKTIMER_H /** =================================================================== * @file clitkTimer.h * @author David Sarrut * @date 18 Jul 2007 16:26:08 * @brief ===================================================================*/ #include "clitkCommon.h" #include #if defined(UNIX) # include # include #elif defined(WIN32) # include #endif #include #include namespace clitk { class Timer { public: //==================================================================== Timer(); void Start(); void Stop(bool accumulate=true); void Reset(); void Print(std::ostream & os=std::cout) const; void Print(std::string text, std::ostream & os=std::cout) const; //==================================================================== //==================================================================== long double GetTimeInMicroSecond() const { return mElapsed; } long double GetMeanTimeInMicroSecond() const { return mElapsed/mNumberOfCall; } long int GetNumberOfCall() const { return mNumberOfCall; } //==================================================================== protected: #if defined(UNIX) rusage mBegin; rusage mEnd; #elif defined(WIN32) unsigned __int64 mBegin; unsigned __int64 mEnd; unsigned __int64 mFrequency; #endif long double mElapsed; long int mNumberOfCall; }; } // end namespace // #endif #endif /* end #define CLITKTIMER_H */