summaryrefslogtreecommitdiff
path: root/src/GudhUI/utils/MClock.h
diff options
context:
space:
mode:
authorsalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-27 10:20:13 +0000
committersalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-27 10:20:13 +0000
commitf527cde6342c5b8109a20f0a6b483327c6569844 (patch)
tree1c0464b56b21ef7767f814b9a35a6e5c68aa7613 /src/GudhUI/utils/MClock.h
parentdf6c26bdcb28805e8949d08dad5acd012e91ecb8 (diff)
Merge GudhUI, a UI for gudhi based on Qt
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@427 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 17fedd974f14a8225b27d94361e835964eeb5cba
Diffstat (limited to 'src/GudhUI/utils/MClock.h')
-rw-r--r--src/GudhUI/utils/MClock.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/GudhUI/utils/MClock.h b/src/GudhUI/utils/MClock.h
new file mode 100644
index 00000000..b5c7d191
--- /dev/null
+++ b/src/GudhUI/utils/MClock.h
@@ -0,0 +1,57 @@
+/*
+ * Clock.h
+ *
+ * Created on: Jun 17, 2014
+ * Author: dsalinas
+ */
+
+#ifndef CLOCK_H_
+#define CLOCK_H_
+
+#include <sys/time.h>
+
+
+class MClock{
+
+public:
+ MClock(){
+ end_called = false;
+ begin();
+ }
+
+ void begin() const{
+ end_called = false;
+ gettimeofday(&startTime, NULL);
+ }
+
+ void end() const{
+ end_called = true;
+ gettimeofday(&endTime, NULL);
+ }
+
+ friend std::ostream& operator<< (std::ostream& stream,const MClock& clock){
+ // if(!clock.end_called) clock.end();
+ if(!clock.end_called) stream << "end not called";
+ else{
+ long totalTime = (clock.endTime.tv_sec - clock.startTime.tv_sec) * 1000000L;
+ totalTime += (clock.endTime.tv_usec - clock.startTime.tv_usec);
+ stream << clock.num_seconds() <<"s";
+ }
+ return stream;
+
+ }
+
+ double num_seconds() const{
+ if(!end_called) end();
+ long totalTime = (endTime.tv_sec - startTime.tv_sec) * 1000000L;
+ totalTime += (endTime.tv_usec - startTime.tv_usec);
+ return (totalTime / 1000L)/(double) 1000;
+ }
+
+private:
+ mutable struct timeval startTime, endTime;
+ mutable bool end_called;
+};
+
+
+#endif /* CLOCK_H_ */