From f6c1d5c870dadddc88c8f501448e2951b1c900b7 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 10 Mar 2010 10:55:01 +0000 Subject: keepalive PINGs --- src/util/time.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/util/time.c') diff --git a/src/util/time.c b/src/util/time.c index 36a3c8631..ce2f9517f 100644 --- a/src/util/time.c +++ b/src/util/time.c @@ -137,6 +137,22 @@ GNUNET_TIME_relative_min (struct } +/** + * Return the maximum of two relative time values. + * + * @param t1 first timestamp + * @param t2 other timestamp + * @return timestamp that is larger + */ +struct GNUNET_TIME_Relative +GNUNET_TIME_relative_max (struct + GNUNET_TIME_Relative + t1, struct GNUNET_TIME_Relative t2) +{ + return (t1.value > t2.value) ? t1 : t2; +} + + /** * Return the minimum of two relative time values. @@ -276,6 +292,26 @@ GNUNET_TIME_relative_multiply (struct GNUNET_TIME_Relative rel, } +/** + * Divide relative time by a given factor. + * + * @param rel some duration + * @param factor integer to divide by + * @return FOREVER if rel=FOREVER or factor==0; otherwise rel/factor + */ +struct GNUNET_TIME_Relative +GNUNET_TIME_relative_divide (struct GNUNET_TIME_Relative rel, + unsigned int factor) +{ + struct GNUNET_TIME_Relative ret; + if ( (factor == 0) || + (rel.value == GNUNET_TIME_UNIT_FOREVER_REL.value) ) + return GNUNET_TIME_UNIT_FOREVER_REL; + ret.value = rel.value / (unsigned long long) factor; + return ret; +} + + /** * Calculate the estimate time of arrival/completion * for an operation. -- cgit v1.2.3