graph_{data,def}_json actions: Don't destroy the graph_config_t object.
[collection4.git] / src / graph_ident.h
index 4eced2d..6d033b3 100644 (file)
 #define GRAPH_IDENT_H 1
 
 #include <time.h>
+
+#include <yajl/yajl_gen.h>
+
 #include "graph_types.h"
+#include "data_provider.h"
 
 #define ANY_TOKEN "/any/"
 #define ALL_TOKEN "/all/"
@@ -78,9 +82,22 @@ int ident_compare (const graph_ident_t *i0,
 _Bool ident_matches (const graph_ident_t *selector,
     const graph_ident_t *ident);
 
+/* The "ident_intersect" function takes two selectors and returns true if a
+ * file may apply to both selectors. If the selectors contradict one another,
+ * for example one issuing "plugin = cpu" and the other "plugin = memory",
+ * then false is returned. */
+_Bool ident_intersect (const graph_ident_t *s0, const graph_ident_t *s1);
+
 char *ident_to_string (const graph_ident_t *ident);
 char *ident_to_file (const graph_ident_t *ident);
-char *ident_to_json (const graph_ident_t *ident);
+int ident_to_json (const graph_ident_t *ident,
+    yajl_gen handler);
+int ident_data_to_json (const graph_ident_t *ident,
+    dp_time_t begin, dp_time_t end,
+    yajl_gen handler);
+
+int ident_describe (const graph_ident_t *ident, const graph_ident_t *selector,
+    char *buffer, size_t buffer_size);
 
 time_t ident_get_mtime (const graph_ident_t *ident);