Files
WrenchBoradWeb/wrenchboard/src/core/timer.cc
T
2019-05-31 11:26:35 -04:00

50 lines
557 B
C++

#include <unistd.h>
#include <sys/time.h>
#include "timer.h"
unsigned long stamp()
{
struct timeval tv;
gettimeofday( &tv, NULL );
return tv.tv_sec * 1000000 + tv.tv_usec;
}
CTimer::CTimer( )
{
prev = stamp();
}
void CTimer::init( )
{
prev = stamp();
}
void CTimer::wake( unsigned long usec )
{
long sleep_time = usec-(stamp()-prev);
if ( sleep_time>0 )
usleep( sleep_time );
prev = stamp();
}
bool CTimer::timeout( unsigned long usec )
{
return stamp()-prev > usec;
}
unsigned long CTimer::elapsed( )
{
return stamp()-prev;
}