osmo-sysmon/src/value_node.h

25 lines
801 B
C

#pragma once
#include <osmocom/core/linuxlist.h>
/* a single node in the tree of values */
struct value_node {
/* our element in the parent list */
struct llist_head list;
/* the display name */
const char *name;
/* additional numeric index (for ifindex matching) */
int idx;
/* the value (if any) */
const char *value;
/* the children (if value == NULL) */
struct llist_head children;
};
struct value_node *value_node_add(struct value_node *parent,
const char *name, const char *value);
struct value_node *value_node_find(struct value_node *parent, const char *name);
struct value_node *value_node_find_by_idx(struct value_node *parent, int idx);
struct value_node *value_node_find_or_add(struct value_node *parent, const char *name);
void value_node_del(struct value_node *node);