.TH "globus_time.h" 3 "Wed Feb 27 2019" "Version 18.2" "globus_common" \" -*- nroff -*- .ad l .nh .SH NAME globus_time.h \- Time Types and Macros\&. .SH SYNOPSIS .br .PP \fC#include 'globus_types\&.h'\fP .br \fC#include \fP .br .SS "Macros" .in +1c .ti -1c .RI "#define \fBGlobusTimeAbstimeSet\fP(Abstime, Sec, USec)" .br .ti -1c .RI "#define \fBGlobusTimeAbstimeGet\fP(Abstime, Sec, USec)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeSet\fP(Reltime, Sec, USec)" .br .ti -1c .RI "#define \fBGlobusTimeAbstimeDiff\fP(Reltime, T1, T2)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeToUSec\fP(SlpInt, Reltime)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeToMilliSec\fP(Milliseconds, Reltime)" .br .ti -1c .RI "#define \fBGlobusTimeAbstimeInc\fP(Abstime, Reltime)" .br .ti -1c .RI "#define \fBGlobusTimeAbstimeGetCurrent\fP(Abstime)" .br .ti -1c .RI "#define \fBGlobusTimeAbstimeCopy\fP(Dest, Src)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeCopy\fP(Dest, Src)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeMultiply\fP(Reltime, Factor)" .br .ti -1c .RI "#define \fBGlobusTimeReltimeDivide\fP(Reltime, Factor)" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_time_has_expired\fP (const globus_abstime_t *abstime)" .br .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_time_abstime_is_infinity\fP (const globus_abstime_t *abstime)" .br .ti -1c .RI "\fBglobus_bool_t\fP \fBglobus_time_reltime_is_infinity\fP (const globus_reltime_t *reltime)" .br .ti -1c .RI "int \fBglobus_abstime_cmp\fP (const globus_abstime_t *abstime_1, const globus_abstime_t *abstime_2)" .br .ti -1c .RI "int \fBglobus_reltime_cmp\fP (const globus_reltime_t *reltime_1, const globus_reltime_t *reltime_2)" .br .in -1c .SH "Detailed Description" .PP Time Types and Macros\&. .SH "Macro Definition Documentation" .PP .SS "#define GlobusTimeAbstimeCopy(Dest, Src)" \fBValue:\fP .PP .nf { \ (Dest)\&.tv_sec = (Src)\&.tv_sec; \ (Dest)\&.tv_nsec = (Src)\&.tv_nsec; \ } .fi Copy the absolute time .SS "#define GlobusTimeAbstimeDiff(Reltime, T1, T2)" \fBValue:\fP .PP .nf { \ int __res = globus_abstime_cmp(&(T1), &(T2)); \ if(__res < 0) \ { \ (Reltime)\&.tv_sec = (T2)\&.tv_sec - (T1)\&.tv_sec; \ (Reltime)\&.tv_usec = \ (((T2)\&.tv_nsec - (T1)\&.tv_nsec) / 1000); \ if((Reltime)\&.tv_usec < 0) \ { \ (Reltime)\&.tv_sec--; \ (Reltime)\&.tv_usec += 1000000; \ } \ } \ else if(__res > 0) \ { \ (Reltime)\&.tv_sec = (T1)\&.tv_sec - (T2)\&.tv_sec; \ (Reltime)\&.tv_usec = \ (((T1)\&.tv_nsec - (T2)\&.tv_nsec) / 1000); \ if((Reltime)\&.tv_usec < 0) \ { \ (Reltime)\&.tv_sec--; \ (Reltime)\&.tv_usec += 1000000; \ } \ } \ else \ { \ (Reltime)\&.tv_sec = 0; \ (Reltime)\&.tv_usec = 0; \ } \ } .fi Find the difference between the 2 absolute times\&. .SS "#define GlobusTimeAbstimeGet(Abstime, Sec, USec)" \fBValue:\fP .PP .nf { \ Sec = (Abstime)\&.tv_sec; \ USec = ((Abstime)\&.tv_nsec / 1000); \ } .fi Seperates abstime structure into its components,sec and usec\&. .SS "#define GlobusTimeAbstimeGetCurrent(Abstime)" \fBValue:\fP .PP .nf { \ struct timeval __time; \ \ gettimeofday(&__time, GLOBUS_NULL); \ (Abstime)\&.tv_sec = __time\&.tv_sec; \ (Abstime)\&.tv_nsec = (__time\&.tv_usec * 1000); \ } .fi Get the current time .SS "#define GlobusTimeAbstimeInc(Abstime, Reltime)" \fBValue:\fP .PP .nf { \ (Abstime)\&.tv_nsec += ((Reltime)\&.tv_usec * 1000); \ if((Abstime)\&.tv_nsec >= 1000000000) \ { \ (Abstime)\&.tv_sec++; \ (Abstime)\&.tv_nsec -= 1000000000; \ } \ (Abstime)\&.tv_sec += (Reltime)\&.tv_sec; \ } .fi Add reltime to abstime .SS "#define GlobusTimeAbstimeSet(Abstime, Sec, USec)" \fBValue:\fP .PP .nf { \ GlobusTimeAbstimeGetCurrent(Abstime); \ (Abstime)\&.tv_nsec += (USec * 1000); \ if((Abstime)\&.tv_nsec >= 1000000000) \ { \ (Abstime)\&.tv_sec += ((Abstime)\&.tv_nsec / 1000000000);\ (Abstime)\&.tv_nsec = (Abstime)\&.tv_nsec % 1000000000; \ } \ (Abstime)\&.tv_sec += Sec; \ } .fi Set the abstime structure to the sec and usec parameter values\&. .SS "#define GlobusTimeReltimeCopy(Dest, Src)" \fBValue:\fP .PP .nf { \ (Dest)\&.tv_sec = (Src)\&.tv_sec; \ (Dest)\&.tv_usec = (Src)\&.tv_usec; \ } .fi Copy the relative time .SS "#define GlobusTimeReltimeDivide(Reltime, Factor)" \fBValue:\fP .PP .nf { \ (Reltime)\&.tv_usec /= Factor; \ (Reltime)\&.tv_sec /= Factor; \ } .fi divide the reltime by factor .SS "#define GlobusTimeReltimeMultiply(Reltime, Factor)" \fBValue:\fP .PP .nf { \ (Reltime)\&.tv_usec *= Factor; \ (Reltime)\&.tv_sec *= Factor; \ \ if((Reltime)\&.tv_usec >= 1000000) \ { \ (Reltime)\&.tv_sec += ((Reltime)\&.tv_usec / 1000000);\ (Reltime)\&.tv_usec = (Reltime)\&.tv_usec % 1000000; \ } \ } .fi Multiple the reltime by factor .SS "#define GlobusTimeReltimeSet(Reltime, Sec, USec)" \fBValue:\fP .PP .nf { \ (Reltime)\&.tv_usec = (USec); \ (Reltime)\&.tv_sec = Sec; \ if((Reltime)\&.tv_usec >= 1000000) \ { \ (Reltime)\&.tv_sec += ((Reltime)\&.tv_usec / 1000000);\ (Reltime)\&.tv_usec = (Reltime)\&.tv_usec % 1000000; \ } \ } .fi Set the reltime structure to the sec and usec parameter values\&. .SS "#define GlobusTimeReltimeToMilliSec(Milliseconds, Reltime)" \fBValue:\fP .PP .nf { \ Milliseconds = ((Reltime)\&.tv_sec * 1000) + \ ((Reltime)\&.tv_usec)/ 1000; \ } .fi Convert a relative time into a long in millisec units .SS "#define GlobusTimeReltimeToUSec(SlpInt, Reltime)" \fBValue:\fP .PP .nf { \ SlpInt = ((Reltime)\&.tv_sec * 1000000) + \ ((Reltime)\&.tv_usec); \ } .fi Convert a relitive time into a long in usec units .SH "Function Documentation" .PP .SS "int globus_abstime_cmp (const globus_abstime_t * abstime_1, const globus_abstime_t * abstime_2)" Compare two absolute times\&. .PP This function returns an integer that reflects the comparison of two abstimes in the following way\&. .PP 0 : values are the same\&. -1 : the first value is less than the second\&. 1 : the first value is greater than the second\&. .SS "int globus_reltime_cmp (const globus_reltime_t * reltime_1, const globus_reltime_t * reltime_2)" Compare two absolute times\&. .PP This function returns an integer that reflects the comparison of two reltimes in the following way\&. .PP 0 : values are the same\&. -1 : the first value is less than the second\&. 1 : the first value is greater than the second\&. .SS "\fBglobus_bool_t\fP globus_time_abstime_is_infinity (const globus_abstime_t * abstime)" Returns a boolean that reflects whether or not abstime is infinity\&. .SS "\fBglobus_bool_t\fP globus_time_has_expired (const globus_abstime_t * abstime)" Has abstime expired .PP Returns a boolean that reflects whether or not abstime is less than the current time\&. .SS "\fBglobus_bool_t\fP globus_time_reltime_is_infinity (const globus_reltime_t * reltime)" Returns a boolean that reflects whether or not reltime is infinity\&. .SH "Author" .PP Generated automatically by Doxygen for globus_common from the source code\&.