stats: Add stat_item_for_each functions
This commit adds the following functions:
stat_item_for_each_group Call a handler for each group
stat_item_for_each_item Call a handler for each item of a
group
Sponsored-by: On-Waves ehf
diff --git a/src/stat_item.c b/src/stat_item.c
index 1e283d4..525a94b 100644
--- a/src/stat_item.c
+++ b/src/stat_item.c
@@ -235,4 +235,34 @@
return NULL;
}
+int stat_item_for_each_item(struct stat_item_group *statg,
+ stat_item_handler_t handle_item, void *data)
+{
+ int rc = 0;
+ int i;
+
+ for (i = 0; i < statg->desc->num_items; i++) {
+ struct stat_item *item = statg->items[i];
+ rc = handle_item(statg, item, data);
+ if (rc < 0)
+ return rc;
+ }
+
+ return rc;
+}
+
+int stat_item_for_each_group(stat_item_group_handler_t handle_group, void *data)
+{
+ struct stat_item_group *statg;
+ int rc = 0;
+
+ llist_for_each_entry(statg, &stat_item_groups, list) {
+ rc = handle_group(statg, data);
+ if (rc < 0)
+ return rc;
+ }
+
+ return rc;
+}
+
/*! @} */