00001 00005 class CPUclock 00006 00007 { 00008 bool locked_clock; 00009 long tunits; 00010 00011 #ifndef WIN32 00012 tms last; 00013 tms now; 00014 tms diff; 00015 #else 00016 _timeb last; 00017 _timeb now; 00018 _timeb diff; 00019 clock_t now_cpu; 00020 clock_t last_cpu; 00021 clock_t diff_cpu; 00022 #endif 00023 00024 void swap(); 00025 void subt(); 00026 00027 double convert2sec (clock_t tm) 00028 { return double(tm)/double(tunits); } 00029 00030 public: 00031 CPUclock (); 00032 00033 00034 00035 double getInterval (); 00036 double getIntervalU (); 00037 00038 void initTime () { getInterval(); } 00039 00040 double getTime (); 00041 00042 void lock () { locked_clock = true; } 00043 void unlock () { locked_clock = false; } 00044 bool locked () const { return locked_clock; } 00045 }; 00046 00047