added --no-overwrite option to rrdtool create. It prevents rrdtool from clobbering...
[rrdtool.git] / src / rrd_tool.h
index 020ff40..86c4aa8 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.2.23  Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.4.2  Copyright by Tobi Oetiker, 1997-2009
  *****************************************************************************
  * rrd_tool.h   Common Header File
  *****************************************************************************/
@@ -50,7 +50,13 @@ extern    "C" {
 #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
@@ -63,48 +69,9 @@ extern    "C" {
 
 #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 */
 
@@ -116,53 +83,31 @@ extern    "C" {
     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);
+    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
 
-    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
+#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);
@@ -171,17 +116,13 @@ extern    "C" {
     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
 }