/*****************************************************************************
- * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.4.3 Copyright by Tobi Oetiker, 1997-2010
*****************************************************************************
* rrd_tool.h Common Header File
*****************************************************************************/
#ifdef __cplusplus
-extern "C" {
+extern "C" {
#endif
#ifndef _RRD_TOOL_H
/* Win32 only includes */
-#include <float.h> /* for _isnan */
-#include <io.h> /* for chdir */
-
-struct tm* localtime_r(const time_t *timep, struct tm* result);
-char* ctime_r(const time_t *timep, char* result);
-struct tm* gmtime_r(const time_t *timep, struct tm* result);
-char *strtok_r(char *str, const char *sep, char **last);
+#include <float.h> /* for _isnan */
+#include <io.h> /* for chdir */
+
+ struct tm *localtime_r(
+ const time_t *timep,
+ struct tm *result);
+ char *ctime_r(
+ const time_t *timep,
+ char *result);
+ struct tm *gmtime_r(
+ const time_t *timep,
+ struct tm *result);
+ char *strtok_r(
+ char *str,
+ const char *sep,
+ char **last);
#else
/* unix-only includes */
#if !defined isnan && !defined HAVE_ISNAN
-int isnan(double value);
+ int isnan(
+ double value);
#endif
#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);
+ char *sprintf_alloc(
+ char *,
+ ...);
/* HELPER FUNCTIONS */
-int PngSize(FILE *, long *, long *);
-
-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);
-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);
-
-#define RRD_READONLY 0
-#define RRD_READWRITE 1
-#define RRD_CREAT 2
-
-enum cf_en cf_conv(const char *string);
-enum dst_en dst_conv(char *string);
-long ds_match(rrd_t *rrd,char *ds_nam);
-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);
-
+ int PngSize(
+ FILE *,
+ long *,
+ long *);
+
+ int rrd_create_fn(
+ const char *file_name,
+ rrd_t *rrd,
+ int no_overwrite);
+ 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)
+#define RRD_CREAT (1<<2)
+#define RRD_READAHEAD (1<<3)
+#define RRD_COPY (1<<4)
+#define RRD_EXCL (1<<5)
+
+ enum cf_en cf_conv(
+ const char *string);
+ enum dst_en dst_conv(
+ char *string);
+ 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);
+
+ const char *cf_to_string (enum cf_en cf);
+
+#endif /* _RRD_TOOL_H */
+
#ifdef __cplusplus
}
#endif