Protium
Math and Design Features
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Clock.h
Go to the documentation of this file.
1 #ifndef Protium_Clock_h_
2 #define Protium_Clock_h_
3 
4 #include <time.h> /* clock_t, clock, CLOCKS_PER_SEC */
5 #include <vector>
6 
7 namespace Protium{
8  namespace Time{
9 
14  clock_t fClock;
15  public:
17  Set();
18  }
19  inline void Set(){
20  fClock = clock();
21  }
22  inline clock_t Get() const{
23  return fClock;
24  }
25  static clock_t CPS(){
26  return CLOCKS_PER_SEC;
27  }
28 
30  this->fClock = other.fClock;
31  }
32 
34  this->fClock = other.fClock;
35  return *this;
36  }
37  bool operator==(const ClockPrimitive& other){
38  return (this->fClock == other.fClock );
39  }
40 
41 
43  this->fClock - other.fClock;
44  return *this;
45  }
46 
47  };
48 
55  public:
57  inline void Start(){fStart.Set();}
58  inline void Stop(){fStop.Set();}
59  inline clock_t GetTime(){return fStop.Get() - fStart.Get();}
60  };
61 
62 
65  //* Every Time we
66  std::vector<ClockPrimitive> fData;
67  public:
69  inline void Clock(){
70  fData.push_back( ClockPrimitive() );
71  }
72  unsigned GetNClocks() const {
73  return fData.size();
74  }
75  clock_t GetStart(){
76  return fStart.Get();
77  }
78  clock_t Get(const unsigned& i=0)const {
79  return fData[i].Get();
80  }
81  clock_t GetOffset(const unsigned& i=0)const {
82  return fData[i].Get() - fStart.Get();
83  }
84 
85  };
86  }
87 }
88 
89 #endif //File Guardian
clock_t Get() const
Definition: Clock.h:22
static clock_t CPS()
Definition: Clock.h:25
ClockPrimitive & operator-(const ClockPrimitive &other)
Definition: Clock.h:42
unsigned GetNClocks() const
Definition: Clock.h:72
clock_t GetOffset(const unsigned &i=0) const
Definition: Clock.h:81
ClockPrimitive fStart
Definition: Clock.h:53
std::vector< ClockPrimitive > fData
Definition: Clock.h:66
clock_t Get(const unsigned &i=0) const
Definition: Clock.h:78
double Time
Definition: Quantities.h:85
bool operator==(const ClockPrimitive &other)
Definition: Clock.h:37
ClockPrimitive(const ClockPrimitive &other)
Definition: Clock.h:29
ClockPrimitive fStop
Definition: Clock.h:54
ClockPrimitive & operator=(const ClockPrimitive &other)
Definition: Clock.h:33
ClockPrimitive fStart
Definition: Clock.h:64