* introduce a new rrd_create_r2 call to fix the no-overwrite api mess
[rrdtool.git] / src / rrd.h
index 412e20a..7e63110 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.3.2  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.4.3  Copyright by Tobi Oetiker, 1997-2010
  *****************************************************************************
  * rrdlib.h   Public header file for librrd
  *****************************************************************************
@@ -57,6 +57,10 @@ extern    "C" {
 #ifndef WIN32
 #include <unistd.h>     /* for off_t */
 #else
+#ifdef _MSC_VER
+       typedef int mode_t;
+       #define strtoll _strtoi64 
+#endif
        typedef size_t ssize_t;
        typedef long off_t;
 #endif 
@@ -130,6 +134,10 @@ extern    "C" {
         struct rrd_info_t *next;
     } rrd_info_t;
 
+    typedef size_t (* rrd_output_callback_t)(
+    const void *,
+    size_t,
+    void *);
 
 /* main function blocks */
     int       rrd_create(
@@ -218,18 +226,32 @@ extern    "C" {
     const char *filename,
     unsigned long pdp_step,
     time_t last_up,
+    /* int no_overwrite, */
+    int argc,
+    const char **argv);
+    int       rrd_create_r2(
+    const char *filename,
+    unsigned long pdp_step,
+    time_t last_up,
+    int no_overwrite,
     int argc,
     const char **argv);
     rrd_info_t *rrd_info_r(
     char *);
-/* NOTE: rrd_update_r are only thread-safe if no at-style time
-   specifications get used!!! */
+/* NOTE: rrd_update_r and rrd_update_v_r are only thread-safe if no at-style
+   time specifications get used!!! */
 
     int       rrd_update_r(
     const char *filename,
     const char *_template,
     int argc,
     const char **argv);
+    int       rrd_update_v_r(
+    const char *filename,
+    const char *_template,
+    int argc,
+    const char **argv,
+    rrd_info_t * pcdp_summary);
     int rrd_fetch_r (
             const char *filename,
             const char *cf,
@@ -252,6 +274,12 @@ extern    "C" {
     const char *filename,
     int rraindex);
 
+    int rrd_dump_cb_r(
+    const char *filename,
+    int opt_header,
+    rrd_output_callback_t cb,
+    void *user);
+
 /* Transplanted from rrd_parsetime.h */
     typedef enum {
         ABSOLUTE_TIME,
@@ -323,10 +351,16 @@ int       rrd_proc_start_end(
 
     long rrd_random(void);
 
+    int rrd_add_ptr_chunk(void ***dest, size_t *dest_size, void *src,
+                          size_t *alloc, size_t chunk);
     int rrd_add_ptr(void ***dest, size_t *dest_size, void *src);
     int rrd_add_strdup(char ***dest, size_t *dest_size, char *src);
+    int rrd_add_strdup_chunk(char ***dest, size_t *dest_size, char *src,
+                             size_t *alloc, size_t chunk);
     void rrd_free_ptrs(void ***src, size_t *cnt);
 
+    int rrd_mkdir_p(const char *pathname, mode_t mode);
+
 /*
  * 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