X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgraph.h;h=7dca2cedb5755d31c93cc07c1a67bd59cc569cc7;hb=9cf5f9b6aac4ad0f2d164ba95698e9f1dfc9a8ea;hp=2be1a967da77726a55fa2bd3f8b532c378b073bb;hpb=b988bcc13c655299bc3796cccaa583f62704e759;p=collection4.git diff --git a/src/graph.h b/src/graph.h index 2be1a96..7dca2ce 100644 --- a/src/graph.h +++ b/src/graph.h @@ -29,6 +29,7 @@ #include "oconfig.h" #include "rrd_args.h" #include "utils_array.h" +#include "utils_search.h" /* * Functions @@ -52,12 +53,25 @@ 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_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. - * */ +/* Returns true if the given "ident" matches the (more general) selector of + * the graph "cfg". */ +_Bool graph_ident_matches (graph_config_t *cfg, const graph_ident_t *ident); + +/* Returns true if the selector of the graph "cfg" matches the more general + * ident "selector". */ +_Bool graph_matches_ident (graph_config_t *cfg, + const graph_ident_t *selector); + +/* Returns true if a file may apply to both, the graphs selector and the + * selector given as argument. If the selectors contradict one another, + * returns false. */ +_Bool graph_ident_intersect (graph_config_t *cfg, + const graph_ident_t *selector); + +/* 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); @@ -74,7 +88,13 @@ 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, +/* Search for instances using a search_info_t. The code assumes that the + * graph's selector has already been checked against the search_info_t, using + * "search_to_ident" and "graph_matches_ident". */ +int graph_search_inst (graph_config_t *cfg, search_info_t *si, + graph_inst_callback_t callback, void *user_data); + +int graph_search_inst_string (graph_config_t *cfg, const char *term, graph_inst_callback_t callback, void *user_data); /* Iterates over all instances and calls "inst_matches_field". If that method @@ -85,6 +105,10 @@ int graph_inst_search_field (graph_config_t *cfg, int graph_compare (graph_config_t *cfg, const graph_ident_t *ident); +size_t graph_num_instances (graph_config_t *cfg); + +int graph_sort_instances (graph_config_t *cfg); + int graph_clear_instances (graph_config_t *cfg); int graph_get_rrdargs (graph_config_t *cfg, graph_instance_t *inst,