diff --git a/src/graph.h b/src/graph.h
index 30a589fc9511dd46c6461ccf2d50153675406be7..2873103ba1153f5c105ce0903f8e72080b7b5cec 100644 (file)
--- a/src/graph.h
+++ b/src/graph.h
#ifndef GRAPH_H
#define GRAPH_H 1
+#include <yajl/yajl_gen.h>
+
#include "graph_types.h"
#include "graph_ident.h"
#include "oconfig.h"
#include "rrd_args.h"
#include "utils_array.h"
+#include "utils_search.h"
/*
* Functions
int graph_config_add (const oconfig_item_t *ci);
+/* Add "inst" to the internal list. The instance is *not* copied and may not be
+ * freed from the outside. */
+int graph_add_inst (graph_config_t *graph, graph_instance_t *inst);
+
int graph_add_file (graph_config_t *cfg, const graph_ident_t *file);
int graph_get_title (graph_config_t *cfg,
_Bool graph_matches_ident (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.
- * */
+/* 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);
const graph_ident_t *ident,
graph_inst_callback_t callback, void *user_data);
+/* 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);
int graph_compare (graph_config_t *cfg, const graph_ident_t *ident);
+int graph_to_json (const graph_config_t *cfg, yajl_gen handler);
+int graph_def_to_json (const graph_config_t *cfg, yajl_gen handler);
+
size_t graph_num_instances (graph_config_t *cfg);
int graph_sort_instances (graph_config_t *cfg);