src/graph_def.c: Use "ident_describe" to generate a legend entry …
[collection4.git] / src / graph.h
index b6f2e7c..7dca2ce 100644 (file)
@@ -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