diff --git a/src/rrd.h b/src/rrd.h
index ede0c8e69b4a1ee6cc51cb32962298865ea6b3d4..7e04636d6e7b7769220f403f06c80eb4388447fb 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
/*****************************************************************************
- * RRDtool 1.3rc6 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3.5 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrdlib.h Public header file for librrd
*****************************************************************************
- * $Id: rrd.h 1380 2008-05-26 08:56:58Z oetiker $
+ * $Id: rrd.h 1710 2008-12-15 22:06:22Z oetiker $
* $Log$
* Revision 1.9 2005/02/13 16:13:33 oetiker
* let rrd_graph return the actual value range it picked ...
#define _RRDLIB_H
#include <sys/types.h> /* for off_t */
+
+#ifndef WIN32
#include <unistd.h> /* for off_t */
+#else
+#include <string.h>
+typedef size_t ssize_t;
+typedef long off_t;
+#endif
+
#include <time.h>
#include <stdio.h> /* for FILE */
/* Formerly rrd_nan_inf.h */
#ifndef DNAN
-# define DNAN set_to_DNAN()
+# define DNAN rrd_set_to_DNAN()
#endif
#ifndef DINF
-# define DINF set_to_DINF()
+# define DINF rrd_set_to_DINF()
#endif
- double set_to_DNAN(
+ double rrd_set_to_DNAN(
void);
- double set_to_DINF(
+ double rrd_set_to_DINF(
void);
/* end of rrd_nan_inf.h */
unsigned char *ptr; /* pointer */
} rrd_blob_t;
- enum info_type { RD_I_VAL = 0,
+ typedef enum rrd_info_type { RD_I_VAL = 0,
RD_I_CNT,
RD_I_STR,
RD_I_INT,
RD_I_BLO
- };
+ } rrd_info_type_t;
- typedef union infoval {
+ typedef union rrd_infoval {
unsigned long u_cnt;
rrd_value_t u_val;
char *u_str;
int u_int;
- struct rrd_blob_t u_blo;
- } infoval;
+ rrd_blob_t u_blo;
+ } rrd_infoval_t;
- typedef struct info_t {
+ typedef struct rrd_info_t {
char *key;
- enum info_type type;
- union infoval value;
- struct info_t *next;
- } info_t;
+ rrd_info_type_t type;
+ rrd_infoval_t value;
+ struct rrd_info_t *next;
+ } rrd_info_t;
/* main function blocks */
int rrd_create(
int,
char **);
+ rrd_info_t *rrd_info(
+ int,
+ char **);
+ rrd_info_t *rrd_info_push(
+ rrd_info_t *,
+ char *,
+ rrd_info_type_t,
+ rrd_infoval_t);
+ void rrd_info_print(
+ rrd_info_t * data);
+ void rrd_info_free(
+ rrd_info_t *);
int rrd_update(
int,
char **);
+ rrd_info_t *rrd_update_v(
+ int,
+ char **);
int rrd_graph(
int,
char **,
FILE *,
double *,
double *);
- info_t *rrd_graph_v(
+ rrd_info_t *rrd_graph_v(
int,
char **);
time_t rrd_last(
int,
char **);
+ int rrd_lastupdate(
+ int argc,
+ char **argv,
+ time_t *last_update,
+ unsigned long *ds_cnt,
+ char ***ds_namv,
+ char ***last_ds);
time_t rrd_first(
int,
char **);
char ***,
rrd_value_t **);
+ void rrd_freemem(
+ void *mem);
+
/* thread-safe (hopefully) */
int rrd_create_r(
const char *filename,
const char *filename,
int rraindex);
-/* Transplanted from parsetime.h */
+/* Transplanted from rrd_parsetime.h */
typedef enum {
ABSOLUTE_TIME,
RELATIVE_TO_START_TIME,
RELATIVE_TO_END_TIME
- } timetype;
+ } rrd_timetype_t;
#define TIME_OK NULL
- struct rrd_time_value {
- timetype type;
+ typedef struct rrd_time_value {
+ rrd_timetype_t type;
long offset;
struct tm tm;
- };
+ } rrd_time_value_t;
- char *parsetime(
+ char *rrd_parsetime(
const char *spec,
- struct rrd_time_value *ptv);
-/* END parsetime.h */
+ rrd_time_value_t * ptv);
+/* END rrd_parsetime.h */
- struct rrd_context {
- int len;
- int errlen;
- char *lib_errstr;
- char *rrd_error;
- };
+ typedef struct rrd_context {
+ char lib_errstr[256];
+ char rrd_error[4096];
+ } rrd_context_t;
/* returns the current per-thread rrd_context */
- struct rrd_context *rrd_get_context(
+ rrd_context_t *rrd_get_context(
void);
+#ifdef WIN32
+rrd_context_t *rrd_force_new_context(void);
+#endif
- int proc_start_end(
- struct rrd_time_value *,
- struct rrd_time_value *,
+ int rrd_proc_start_end(
+ rrd_time_value_t *,
+ rrd_time_value_t *,
time_t *,
time_t *);
char *rrd_get_error(
void);
+ /* 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);
+
/** MULTITHREADED HELPER FUNCTIONS */
- struct rrd_context *rrd_new_context(
+ rrd_context_t *rrd_new_context(
void);
void rrd_free_context(
- struct rrd_context *buf);
+ rrd_context_t * buf);
+
+/* void rrd_set_error_r (rrd_context_t *, char *, ...); */
+/* void rrd_clear_error_r(rrd_context_t *); */
+/* int rrd_test_error_r (rrd_context_t *); */
+/* char *rrd_get_error_r (rrd_context_t *); */
+
+/*
+ * 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
+ * will be replaced with a more general interface in RRDTool 1.4. Don't use
+ * these functions unless you have good reasons to do so. If you do use these
+ * functions you will have to adapt your code for RRDTool 1.4!
+ *
+ * To enable the deprecated functions define `RRD_EXPORT_DEPRECATED' before
+ * including <rrd_test.h>. You have been warned! If you come back to the
+ * RRDTool mailing list and whine about your broken application, you will get
+ * hit with something smelly!
+ */
+#if defined(_RRD_TOOL_H) || defined(RRD_EXPORT_DEPRECATED)
+
+# if defined(_RRD_TOOL_H)
+# include "rrd_format.h"
+# else
+# include <rrd_format.h>
+# endif
+
+#if defined(__GNUC__) && defined (RRD_EXPORT_DEPRECATED)
+# define RRD_DEPRECATED __attribute__((deprecated))
+#else
+# define RRD_DEPRECATED /**/
+#endif
+ void rrd_free(
+ rrd_t *rrd)
+ RRD_DEPRECATED;
+ void rrd_init(
+ rrd_t *rrd)
+ RRD_DEPRECATED;
-/* void rrd_set_error_r (struct rrd_context *, char *, ...); */
-/* void rrd_clear_error_r(struct rrd_context *); */
-/* int rrd_test_error_r (struct rrd_context *); */
-/* char *rrd_get_error_r (struct rrd_context *); */
+ rrd_file_t *rrd_open(
+ const char *const file_name,
+ rrd_t *rrd,
+ unsigned rdwr)
+ RRD_DEPRECATED;
- int LockRRD(
- int in_file);
+ void rrd_dontneed(
+ rrd_file_t *rrd_file,
+ rrd_t *rrd)
+ RRD_DEPRECATED;
+ int rrd_close(
+ rrd_file_t *rrd_file)
+ RRD_DEPRECATED;
+ ssize_t rrd_read(
+ rrd_file_t *rrd_file,
+ void *buf,
+ size_t count)
+ RRD_DEPRECATED;
+ ssize_t rrd_write(
+ rrd_file_t *rrd_file,
+ const void *buf,
+ size_t count)
+ RRD_DEPRECATED;
+ void rrd_flush(
+ rrd_file_t *rrd_file)
+ RRD_DEPRECATED;
+ off_t rrd_seek(
+ rrd_file_t *rrd_file,
+ off_t off,
+ int whence)
+ RRD_DEPRECATED;
+ off_t rrd_tell(
+ rrd_file_t *rrd_file)
+ RRD_DEPRECATED;
+ int rrd_lock(
+ rrd_file_t *file)
+ RRD_DEPRECATED;
+#endif /* defined(_RRD_TOOL_H) || defined(RRD_EXPORT_DEPRECATED) */
#endif /* _RRDLIB_H */