Print

Print


Commit in projects/lcdd/branches/v04-00-00-pre/include/lcdd/util on MAIN
TimeUtil.hh+35-13111 -> 3112
Merge from trunk.

projects/lcdd/branches/v04-00-00-pre/include/lcdd/util
TimeUtil.hh 3111 -> 3112
--- projects/lcdd/branches/v04-00-00-pre/include/lcdd/util/TimeUtil.hh	2014-05-08 21:13:38 UTC (rev 3111)
+++ projects/lcdd/branches/v04-00-00-pre/include/lcdd/util/TimeUtil.hh	2014-05-08 21:16:41 UTC (rev 3112)
@@ -1,10 +1,15 @@
 #ifndef lcdd_util_TimeUtil_hh_
-#define lcdd_util_TimeUtil_hh_
+#define lcdd_util_TimeUtil_hh_ 1
 
 #include <sys/time.h>
 
+#include <string>
+#include <map>
+
 class TimeUtil {
 
+    static std::map<std::string, long> _timerMap;
+
 public:
 
     static long getNanoTime() {
@@ -12,6 +17,35 @@
         clock_gettime(CLOCK_REALTIME, &ts);
         return ts.tv_nsec;
     }
+
+    static bool haveTimer(const std::string& name) {
+        return _timerMap.count(name) != 0;
+    }
+
+    static void startTimer(const std::string& name) {
+        _timerMap[name] = getNanoTime();
+    }
+
+    static long stopTimer(const std::string& name) {
+        _timerMap[name] = getNanoTime() - _timerMap[name];
+        return _timerMap[name];
+    }
+
+    static void addTime(const std::string& name, long nanos) {
+        _timerMap[name] += nanos;
+    }
+
+    static void createTimer(const std::string& name) {
+        _timerMap[name] = 0;
+    }
+
+    static long getTime(const std::string& name) {
+        return _timerMap[name];
+    }
+
+    static void clearTimers() {
+        _timerMap.clear();
+    }
 };
 
 #endif
SVNspam 0.1


Use REPLY-ALL to reply to list

To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1