+ void rrd_set_error(
+ char *,
+ ...);
+ void rrd_clear_error(
+ void);
+ int rrd_test_error(
+ void);
+ char *rrd_get_error(
+ void);
+
+ /* rrd_strerror is thread safe, but still it uses a global buffer
+ (but one per thread), thus subsequent calls within a single
+ thread overwrite the same buffer */
+ const char *rrd_strerror(
+ int err);
+
+/** MULTITHREADED HELPER FUNCTIONS */
+ rrd_context_t *rrd_new_context(
+ void);
+ void rrd_free_context(
+ rrd_context_t * buf);
+
+/* void rrd_set_error_r (rrd_context_t *, char *, ...); */
+/* void rrd_clear_error_r(rrd_context_t *); */
+/* int rrd_test_error_r (rrd_context_t *); */
+/* char *rrd_get_error_r (rrd_context_t *); */
+
+/** UTILITY FUNCTIONS */
+
+ long rrd_random(void);
+
+/*
+ * The following functions are _internal_ functions needed to read the raw RRD
+ * files. Since they are _internal_ they may change with the file format and
+ * will be replaced with a more general interface in RRDTool 1.4. Don't use
+ * these functions unless you have good reasons to do so. If you do use these
+ * functions you will have to adapt your code for RRDTool 1.4!
+ *
+ * To enable the deprecated functions define `RRD_EXPORT_DEPRECATED' before
+ * including <rrd_test.h>. You have been warned! If you come back to the
+ * RRDTool mailing list and whine about your broken application, you will get
+ * hit with something smelly!
+ */
+#if defined(_RRD_TOOL_H) || defined(RRD_EXPORT_DEPRECATED)
+
+# if defined(_RRD_TOOL_H)
+# include "rrd_format.h"
+# else
+# include <rrd_format.h>
+# endif
+
+#if defined(__GNUC__) && defined (RRD_EXPORT_DEPRECATED)
+# define RRD_DEPRECATED __attribute__((deprecated))
+#else
+# define RRD_DEPRECATED /**/
+#endif
+ void rrd_free(
+ rrd_t *rrd)
+ RRD_DEPRECATED;
+ void rrd_init(
+ rrd_t *rrd)
+ RRD_DEPRECATED;
+
+ rrd_file_t *rrd_open(
+ const char *const file_name,
+ rrd_t *rrd,
+ unsigned rdwr)
+ RRD_DEPRECATED;
+
+ void rrd_dontneed(
+ rrd_file_t *rrd_file,
+ rrd_t *rrd)
+ RRD_DEPRECATED;
+ int rrd_close(
+ rrd_file_t *rrd_file)
+ RRD_DEPRECATED;
+ ssize_t rrd_read(
+ rrd_file_t *rrd_file,
+ void *buf,
+ size_t count)
+ RRD_DEPRECATED;
+ ssize_t rrd_write(
+ rrd_file_t *rrd_file,
+ const void *buf,
+ size_t count)
+ RRD_DEPRECATED;
+ off_t rrd_seek(
+ rrd_file_t *rrd_file,
+ off_t off,
+ int whence)
+ RRD_DEPRECATED;
+ off_t rrd_tell(
+ rrd_file_t *rrd_file)
+ RRD_DEPRECATED;
+ int rrd_lock(
+ rrd_file_t *file)
+ RRD_DEPRECATED;
+ void rrd_notify_row(
+ rrd_file_t *rrd_file,
+ int rra_idx,
+ unsigned long rra_row,
+ time_t rra_time)
+ RRD_DEPRECATED;
+ unsigned long rrd_select_initial_row(
+ rrd_file_t *rrd_file,
+ int rra_idx,
+ rra_def_t *rra
+ )
+ RRD_DEPRECATED;
+#endif /* defined(_RRD_TOOL_H) || defined(RRD_EXPORT_DEPRECATED) */