stat_segment_gauges_pool_t *g;
pool_foreach (g, sm->gauges)
{
- if (g->enabled)
- g->fn (&sm->directory_vector[g->directory_index], g->caller_index);
+ g->fn (&sm->directory_vector[g->directory_index], g->caller_index);
}
/* *INDENT-ON* */
* Add a data provider (via callback) for a given stats entry.
* TODO: Add support for per-provider interval.
*/
-uword
+void
stat_segment_poll_add (u32 vector_index, stat_segment_update_fn update_fn,
- u32 caller_index, u32 interval, u8 enabled)
+ u32 caller_index, u32 interval)
{
stat_segment_main_t *sm = &stat_segment_main;
stat_segment_gauges_pool_t *gauge;
gauge->fn = update_fn;
gauge->caller_index = caller_index;
gauge->directory_index = vector_index;
- gauge->enabled = enabled;
- return pool_elts (sm->gauges) - 1;
-}
-
-/*
- * Enable (or disable) a callback for a stats entry
- */
-void
-stat_segment_poll_state (uword index, u8 enabled)
-{
- stat_segment_main_t *sm = &stat_segment_main;
- stat_segment_gauges_pool_t *gauge = pool_elt_at_index (sm->gauges, index);
-
- ASSERT (gauge);
-
- gauge->enabled = enabled;
+ return;
}
/*
stat_segment_register_gauge (u8 *name, stat_segment_update_fn update_fn,
u32 caller_index)
{
+ stat_segment_main_t *sm = &stat_segment_main;
+ stat_segment_gauges_pool_t *gauge;
+
u32 vector_index = stat_segment_new_entry (name, STAT_DIR_TYPE_SCALAR_INDEX);
if (vector_index == ~0) /* Already registered */
return clib_error_return (0, "%v is already registered", name);
- stat_segment_poll_add (vector_index, update_fn, caller_index, -1, true);
+ pool_get (sm->gauges, gauge);
+ gauge->fn = update_fn;
+ gauge->caller_index = caller_index;
+ gauge->directory_index = vector_index;
return NULL;
}