* Add utility functions to allocate pointers in variable size chunks.
[rrdtool.git] / src / rrd.h
index 412e20a..28a50d7 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
  *****************************************************************************
@@ -130,6 +130,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(
@@ -252,6 +256,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 +333,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