GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 2, or (at your
+ by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
/**
* Create a new load value.
*
+ * @param autodecline speed at which this value should automatically
+ * decline in the absence of external events; at the given
+ * frequency, 0-load values will be added to the load
* @return the new load value
*/
struct GNUNET_LOAD_Value *
-GNUNET_LOAD_value_init (void);
+GNUNET_LOAD_value_init (struct GNUNET_TIME_Relative autodecline);
+
+
+/**
+ * Change the value by which the load automatically declines.
+ *
+ * @param load load to update
+ * @param autodecline frequency of load decline
+ */
+void
+GNUNET_LOAD_value_set_decline (struct GNUNET_LOAD_Value *load,
+ struct GNUNET_TIME_Relative autodecline);
/**
* that we could not do proper calculations
*/
double
-GNUNET_LOAD_get_load (const struct GNUNET_LOAD_Value *load);
+GNUNET_LOAD_get_load (struct GNUNET_LOAD_Value *load);
/**
* @return zero if update was never called
*/
double
-GNUNET_LOAD_get_average (const struct GNUNET_LOAD_Value *load);
+GNUNET_LOAD_get_average (struct GNUNET_LOAD_Value *load);
/**
* @param data latest measurement value (for example, delay)
*/
void
-GNUNET_LOAD_update (struct GNUNET_LOAD_Value *load,
- uint64_t data);
+GNUNET_LOAD_update (struct GNUNET_LOAD_Value *load, uint64_t data);
#if 0 /* keep Emacsens' auto-indent happy */