X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=version2%2Fsrc%2FC%2FTimingSingleton.h;h=8083c04a27075efa8111fa2d823487ba8641db29;hp=a6e1aac5cd9cd7f4d1a60dd3276cf89121a932de;hb=b93a811befa0833e1442ec558977bbb876e61177;hpb=f0a95f7a96e808259ced5e9f61e029773c7a85e6 diff --git a/version2/src/C/TimingSingleton.h b/version2/src/C/TimingSingleton.h index a6e1aac..8083c04 100644 --- a/version2/src/C/TimingSingleton.h +++ b/version2/src/C/TimingSingleton.h @@ -1,32 +1,39 @@ - +#ifndef TIMINGSINGLETON_H +#define TIMINGSINGLETON_H +#include class TimingSingleton { - private static TimingSingleton singleton = new TimingSingleton( ); - private static int64_t startTime = 0; - - private static int64_t totalTime = 0; - - private TimingSingleton() { - - } - - public static TimingSingleton getInstance( ) { - return singleton; - } - - - public static void startTime( ) { - startTime = System.nanoTime(); - } - - public static void endTime( ) { - totalTime += System.nanoTime() - startTime; - - } - - public static int64_t getTime( ) { - return totalTime; - } - - +private: + int64_t fldstartTime; + int64_t fldtotalTime; + + public: + TimingSingleton() : fldstartTime(0), + fldtotalTime(0) { + } + + int64_t nanoTime() { + int64_t time; + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000000000 + tv.tv_usec * 1000; + } + + void startTime() { + fldstartTime = nanoTime(); + } + + void endTime() { + fldtotalTime += nanoTime() - fldstartTime; + } + + int64_t getTime() { + return fldtotalTime; + } +}; + +TimingSingleton t_singleton; +TimingSingleton *TimingSingleton_getInstance() { + return &t_singleton; } +#endif