X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgraph.h;h=ddfbda6a7ae09637008181bf8706e59b348a1cb8;hb=da4f69af961e91db6605a451dc3040c82c1a7344;hp=57a866f996cc090c2e392adb62b8f8be1c8d1b71;hpb=2c85f876c1b9d5c161694cfb03cf20773b74c844;p=collection4.git diff --git a/src/graph.h b/src/graph.h index 57a866f..ddfbda6 100644 --- a/src/graph.h +++ b/src/graph.h @@ -2,7 +2,9 @@ #define GRAPH_H 1 #include "graph_types.h" +#include "graph_ident.h" #include "oconfig.h" +#include "rrd_args.h" #include "utils_array.h" /* @@ -19,17 +21,43 @@ int graph_add_file (graph_config_t *cfg, const graph_ident_t *file); int graph_get_title (graph_config_t *cfg, char *buffer, size_t buffer_size); -graph_ident_t *graph_get_selector (graph_config_t *cfg); +int graph_get_params (graph_config_t *cfg, char *buffer, size_t buffer_size); -graph_instance_t *graph_get_instances (graph_config_t *cfg); +graph_ident_t *graph_get_selector (graph_config_t *cfg); graph_def_t *graph_get_defs (graph_config_t *cfg); int graph_add_def (graph_config_t *cfg, graph_def_t *def); -_Bool graph_matches (graph_config_t *cfg, const graph_ident_t *ident); +_Bool graph_matches_ident (graph_config_t *cfg, const graph_ident_t *ident); + +/* Compares the given string with the appropriate field of the selector. If the + * selector field is "/all/" or "/any/", returns true without checking the + * instances. See "graph_inst_search_field" for finding all matching instances. + * */ +_Bool graph_matches_field (graph_config_t *cfg, + graph_ident_field_t field, const char *field_value); + +int graph_inst_foreach (graph_config_t *cfg, + inst_callback_t cb, void *user_data); + +graph_instance_t *graph_inst_find_exact (graph_config_t *cfg, + graph_ident_t *ident); + +graph_instance_t *graph_inst_find_matching (graph_config_t *cfg, + const graph_ident_t *ident); + +int graph_inst_find_all_matching (graph_config_t *cfg, + const graph_ident_t *ident, + graph_inst_callback_t callback, void *user_data); + +int graph_inst_search (graph_config_t *cfg, const char *term, + graph_inst_callback_t callback, void *user_data); -int graph_search (graph_config_t *cfg, const char *term, +/* Iterates over all instances and calls "inst_matches_field". If that method + * returns true, calls the callback with the graph and instance pointers. */ +int graph_inst_search_field (graph_config_t *cfg, + graph_ident_field_t field, const char *field_value, graph_inst_callback_t callback, void *user_data); int graph_compare (graph_config_t *cfg, const graph_ident_t *ident); @@ -37,7 +65,7 @@ int graph_compare (graph_config_t *cfg, const graph_ident_t *ident); int graph_clear_instances (graph_config_t *cfg); int graph_get_rrdargs (graph_config_t *cfg, graph_instance_t *inst, - str_array_t *args); + rrd_args_t *args); #endif /* GRAPH_H */ /* vim: set sw=2 sts=2 et fdm=marker : */