/*****************************************************************************
- * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.4.1 Copyright by Tobi Oetiker, 1997-2009
*****************************************************************************
* rrd_tool.h Common Header File
*****************************************************************************/
#endif
/* local include files -- need to be after the system ones */
+#ifdef HAVE_GETOPT_LONG
+#define _GNU_SOURCE
+#include <getopt.h>
+#else
#include "rrd_getopt.h"
+#endif
+
#include "rrd_format.h"
#ifndef max
#define DIM(x) (sizeof(x)/sizeof(x[0]))
-/* rrd info interface */
- enum info_type { RD_I_VAL = 0,
- RD_I_CNT,
- RD_I_STR,
- RD_I_INT
- };
-
- typedef union infoval {
- unsigned long u_cnt;
- rrd_value_t u_val;
- char *u_str;
- int u_int;
- } infoval;
-
- typedef struct info_t {
- char *key;
- enum info_type type;
- union infoval value;
- struct info_t *next;
- } info_t;
-
- info_t *rrd_info(
- int,
- char **);
- int rrd_lastupdate(
- int argc,
- char **argv,
- time_t *last_update,
- unsigned long *ds_cnt,
- char ***ds_namv,
- char ***last_ds);
- info_t *rrd_update_v(
- int,
- char **);
char *sprintf_alloc(
char *,
...);
- info_t *info_push(
- info_t *,
- char *,
- enum info_type,
- infoval);
/* HELPER FUNCTIONS */
int rrd_create_fn(
const char *file_name,
rrd_t *rrd);
- int rrd_fetch_fn(
- const char *filename,
- enum cf_en cf_idx,
- time_t *start,
- time_t *end,
- unsigned long *step,
- unsigned long *ds_cnt,
- char ***ds_namv,
- rrd_value_t **data);
-
- void rrd_free(
- rrd_t *rrd);
- void rrd_freemem(
- void *mem);
- void rrd_init(
- rrd_t *rrd);
-
- rrd_file_t *rrd_open(
- const char *const file_name,
- rrd_t *rrd,
- unsigned rdwr);
- void rrd_dontneed(
- rrd_file_t *rrd_file,
- rrd_t *rrd);
- int rrd_close(
- rrd_file_t *rrd_file);
- ssize_t rrd_read(
- rrd_file_t *rrd_file,
- void *buf,
- size_t count);
- ssize_t rrd_write(
- rrd_file_t *rrd_file,
- const void *buf,
- size_t count);
- void rrd_flush(
- rrd_file_t *rrd_file);
- off_t rrd_seek(
- rrd_file_t *rrd_file,
- off_t off,
- int whence);
- off_t rrd_tell(
- rrd_file_t *rrd_file);
- int readfile(
- const char *file,
- char **buffer,
- int skipfirst);
+ int rrd_fetch_fn (const char *filename,
+ enum cf_en cf_idx,
+ time_t *start,
+ time_t *end,
+ unsigned long *step,
+ unsigned long *ds_cnt,
+ char ***ds_namv,
+ rrd_value_t **data);
+
+
+#ifdef HAVE_LIBDBI
+int rrd_fetch_fn_libdbi(const char *filename, enum cf_en cf_idx,
+ time_t *start,time_t *end,
+ unsigned long *step,
+ unsigned long *ds_cnt,
+ char ***ds_namv,
+ rrd_value_t **data);
+#endif
#define RRD_READONLY (1<<0)
#define RRD_READWRITE (1<<1)
long ds_match(
rrd_t *rrd,
char *ds_nam);
+ off_t rrd_get_header_size(
+ rrd_t *rrd);
double rrd_diff(
char *a,
char *b);
- /* 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);
-
-#endif
+#endif /* _RRD_TOOL_H */
#ifdef __cplusplus
}