00001 #include "PosixClock.hh" 00002 00003 #include <stdlib.h> 00004 00005 namespace certi { 00006 00007 PosixClock::PosixClock(clockid_t newClockId) : Clock("PosixClock") 00008 { 00009 clockId = newClockId; 00010 clock_getres(newClockId, &resolution); 00011 } 00012 00013 double 00014 PosixClock::getResolution() { 00015 return resolution.tv_sec*1e9 + resolution.tv_nsec; 00016 } 00017 00018 uint64_t PosixClock::getCurrentTicksValue() { 00019 struct timespec current; 00020 /* convert struct timespec to number of nano-second */ 00021 clock_gettime(clockId, ¤t); 00022 return current.tv_sec*1000000000 + current.tv_nsec; 00023 } 00024 00025 double 00026 PosixClock::tick2NanoSecond(const uint64_t ticks) { 00027 return ticks; 00028 } 00029 00030 PosixClock::~PosixClock() 00031 { 00032 } 00033 00034 }