00001 #ifndef __H_HELPER__ 00002 #define __H_HELPER__ 00003 00004 #include <sys/time.h> 00005 00006 inline long time_delta_us(const struct timeval &tv_1, const struct timeval &tv_2) { 00007 long tu = tv_1.tv_usec; 00008 if(tv_1.tv_sec != tv_2.tv_sec) 00009 tu += (tv_1.tv_sec - tv_2.tv_sec) * 1000000; 00010 tu -= tv_2.tv_usec; 00011 return tu; 00012 } 00013 00014 inline struct timeval time_plus(struct timeval tv_1, const struct timeval &tv_2) { 00015 tv_1.tv_sec += tv_2.tv_sec; 00016 tv_1.tv_usec += tv_2.tv_usec; 00017 if(tv_1.tv_usec >= 1000000) { 00018 tv_1.tv_sec++; 00019 tv_1.tv_usec -= 1000000; 00020 } 00021 return tv_1; 00022 } 00023 00024 inline struct timeval time_minus(struct timeval tv_1, const struct timeval &tv_2) { 00025 tv_1.tv_sec -= tv_2.tv_sec; 00026 tv_1.tv_usec += 1000000; 00027 tv_1.tv_usec -= tv_2.tv_usec; 00028 if(tv_1.tv_usec >= 1000000) { 00029 tv_1.tv_usec -= 1000000; 00030 } else { 00031 tv_1.tv_sec--; 00032 } 00033 return tv_1; 00034 } 00035 00036 #endif