]> Creatis software - clitk.git/blob - common/clitkTimer.h
Initial revision
[clitk.git] / common / clitkTimer.h
1 #ifndef CLITKTIMER_H
2 #define CLITKTIMER_H
3
4 /**
5    ===================================================================
6    * @file   clitkTimer.h
7    * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
8    * @date   18 Jul 2007 16:26:08
9
10    * @brief  
11
12    ===================================================================*/
13
14 // #ifdef UNIX
15
16 #include "clitkCommon.h"
17 #include <ctime> 
18 #include <sys/time.h>
19 #include <sys/resource.h>
20 #include <iostream>
21
22 namespace clitk {
23
24   class Timer {
25   public:
26     
27     //====================================================================
28     Timer();
29     void Start();
30     void Stop(bool accumulate=true);
31     void Reset();
32     void Print(std::ostream & os=std::cout) const; 
33     void Print(std::string text, std::ostream & os=std::cout) const;
34     //====================================================================
35     
36     //====================================================================
37     long double GetTimeInMicroSecond()     const { return mElapsed; }
38     long double GetMeanTimeInMicroSecond() const { return mElapsed/mNumberOfCall; }
39     long int GetNumberOfCall()             const { return mNumberOfCall; }
40     //====================================================================
41     
42   protected:
43     rusage mBegin; 
44     rusage mEnd;
45     long double mElapsed;
46     long int mNumberOfCall;
47   };
48
49 } // end namespace
50
51 // #endif
52 #endif /* end #define CLITKTIMER_H */
53