cmTime.h/c : Added cmTimeDiffMicros(),cmTimeIsLTE(),cmTimeIsGTE(),cmTimeIsEqual(),cmTimeIsZero(),cmTimeSetZero().
This commit is contained in:
parent
07a49801dd
commit
e11e660e52
50
cmTime.c
50
cmTime.c
@ -62,12 +62,52 @@ unsigned cmTimeElapsedMicros( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
|
||||
unsigned cmTimeAbsElapsedMicros( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
{
|
||||
if( t1->tv_sec > t0->tv_sec )
|
||||
if( cmTimeIsLTE(t0,t1) )
|
||||
return cmTimeElapsedMicros(t0,t1);
|
||||
|
||||
if( t1->tv_sec == t0->tv_sec )
|
||||
if( t1->tv_nsec > t0->tv_nsec )
|
||||
return cmTimeElapsedMicros(t0,t1);
|
||||
|
||||
return cmTimeElapsedMicros(t1,t0);
|
||||
}
|
||||
|
||||
int cmTimeDiffMicros( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
{
|
||||
if( cmTimeIsLTE(t0,t1) )
|
||||
return cmTimeElapsedMicros(t0,t1);
|
||||
|
||||
return -((int)cmTimeElapsedMicros(t1,t0));
|
||||
}
|
||||
|
||||
bool cmTimeIsLTE( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
{
|
||||
if( t0->tv_sec < t1->tv_sec )
|
||||
return true;
|
||||
|
||||
if( t0->tv_sec == t1->tv_sec )
|
||||
return t0->tv_nsec <= t1->tv_nsec;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmTimeIsGTE( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
{
|
||||
if( t0->tv_sec > t1->tv_sec )
|
||||
return true;
|
||||
|
||||
if( t0->tv_sec == t1->tv_sec )
|
||||
return t0->tv_nsec >= t1->tv_nsec;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmTimeIsEqual( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 )
|
||||
{ return t0->tv_sec==t1->tv_sec && t0->tv_nsec==t1->tv_nsec; }
|
||||
|
||||
bool cmTimeIsZero( const cmTimeSpec_t* t0 )
|
||||
{ return t0->tv_sec==0 && t0->tv_nsec==0; }
|
||||
|
||||
void cmTimeSetZero( cmTimeSpec_t* t0 )
|
||||
{
|
||||
t0->tv_sec = 0;
|
||||
t0->tv_nsec = 0;
|
||||
}
|
||||
|
||||
|
||||
|
17
cmTime.h
17
cmTime.h
@ -33,6 +33,23 @@ extern "C" {
|
||||
// The function therefore begins by swapping t1 and t0 if t0 is after t1.
|
||||
unsigned cmTimeAbsElapsedMicros( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 );
|
||||
|
||||
|
||||
// Same as cmTimeElapsedMicros() but returns a negative value if t0 is after t1.
|
||||
int cmTimeDiffMicros( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 );
|
||||
|
||||
|
||||
// Returns true if t0 <= t1.
|
||||
bool cmTimeIsLTE( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 );
|
||||
|
||||
// Return true if t0 >= t1.
|
||||
bool cmTimeIsGTE( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 );
|
||||
|
||||
bool cmTimeIsEqual( const cmTimeSpec_t* t0, const cmTimeSpec_t* t1 );
|
||||
|
||||
bool cmTimeIsZero( const cmTimeSpec_t* t0 );
|
||||
|
||||
void cmTimeSetZero( cmTimeSpec_t* t0 );
|
||||
|
||||
//)
|
||||
//}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user