/*****************************************************************************
- * 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
*****************************************************************************
#define _RRDLIB_H
#include <sys/types.h> /* for off_t */
+
+#ifndef WIN32
#include <unistd.h> /* for off_t */
+#else
+ typedef size_t ssize_t;
+ typedef long off_t;
+#endif
+
#include <time.h>
#include <stdio.h> /* for FILE */
-
+#include <string.h>
/* Formerly rrd_nan_inf.h */
#ifndef DNAN
/* information about an rrd file */
typedef struct rrd_file_t {
- off_t header_len; /* length of the header of this rrd file */
- off_t file_len; /* total size of the rrd file */
- off_t pos; /* current pos in file */
+ size_t header_len; /* length of the header of this rrd file */
+ size_t file_len; /* total size of the rrd file */
+ size_t pos; /* current pos in file */
void *pvt;
} rrd_file_t;
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(
unsigned long *,
char ***,
rrd_value_t **);
- int rrd_cmd_flush (int argc, char **argv);
+ int rrd_flushcached (int argc, char **argv);
void rrd_freemem(
void *mem);
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,
} rrd_context_t;
/* returns the current per-thread rrd_context */
- rrd_context_t *rrd_get_context(
- void);
+ rrd_context_t *rrd_get_context(void);
+#ifdef WIN32
+/* this was added by the win32 porters Christof.Wegmann@exitgames.com */
+ rrd_context_t *rrd_force_new_context(void);
+#endif
- int rrd_proc_start_end(
+int rrd_proc_start_end(
rrd_time_value_t *,
rrd_time_value_t *,
time_t *,
/* int rrd_test_error_r (rrd_context_t *); */
/* char *rrd_get_error_r (rrd_context_t *); */
+/** UTILITY FUNCTIONS */
+
+ 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