+int rrdc_flush_if_daemon (const char *opt_daemon, const char *filename);
+
+int rrdc_fetch (const char *filename,
+ const char *cf,
+ time_t *ret_start, time_t *ret_end,
+ unsigned long *ret_step,
+ unsigned long *ret_ds_num,
+ char ***ret_ds_names,
+ rrd_value_t **ret_data);
+
+#else
+# define rrdc_create(a,b,c,d,e,f) 0
+# define rrdc_flush_if_daemon(a,b) 0
+# define rrdc_connect(a) 0
+# define rrdc_is_connected(a) 0
+# define rrdc_flush(a) 0
+# define rrdc_update(a,b,c) 0
+# define rrdc_last(a) 0
+# define rrdc_first(a,b) 0
+# define rrdc_fetch(a,b,c,d,e,f,g,h) 0
+# define rrdc_info(a) 0
+#endif
+
+struct rrdc_stats_s
+{
+ const char *name;
+ uint16_t type;
+#define RRDC_STATS_TYPE_GAUGE 0x0001
+#define RRDC_STATS_TYPE_COUNTER 0x0002
+ uint16_t flags;
+ union
+ {
+ uint64_t counter;
+ double gauge;
+ } value;
+ struct rrdc_stats_s *next;
+};
+typedef struct rrdc_stats_s rrdc_stats_t;
+
+int rrdc_stats_get (rrdc_stats_t **ret_stats);
+void rrdc_stats_free (rrdc_stats_t *ret_stats);