prep for 1.2rc3 release
[rrdtool.git] / src / rrd_tool.h
index 789f072..f39cbe3 100644 (file)
@@ -1,13 +1,7 @@
 /*****************************************************************************
- * RRDtool 1.0.33  Copyright Tobias Oetiker, 1997 - 2000
+ * RRDtool 1.2rc3  Copyright by Tobi Oetiker, 1997-2005
  *****************************************************************************
  * rrd_tool.h   Common Header File
- *****************************************************************************
- * $Id$
- * $Log$
- * Revision 1.1  2001/02/25 22:25:06  oetiker
- * Initial revision
- *
  *****************************************************************************/
 #ifdef  __cplusplus
 extern "C" {
@@ -18,7 +12,7 @@ extern "C" {
 #define _RRD_TOOL_H
 
 #ifdef WIN32
-# include "ntconfig.h"
+#include "../confignt/config.h"
 #else
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -51,6 +45,36 @@ extern "C" {
 #if HAVE_MATH_H
 # include <math.h>
 #endif
+/* Sorry: don't know autoconf as well how to check the exist of
+   dirent.h ans sys/stat.h
+*/
+
+#if HAVE_DIRENT_H
+# include <dirent.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+#else
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# if HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif
+
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+
 #if HAVE_UNISTD_H
 # include <unistd.h>
 #endif
@@ -86,6 +110,10 @@ int isnan(double value);
 #define isnan _isnan
 #define finite _finite
 #define isinf(a) (_fpclass(a) == _FPCLASS_NINF || _fpclass(a) == _FPCLASS_PINF)
+struct tm* localtime_r(const time_t *timep, struct tm* result);
+char* ctime_r(const time_t *timep, char* result);
+struct tm* gmtime_r(const time_t *timep, struct tm* result);
+char *strtok_r(char *str, const char *sep, char **last);
 #endif
 
 /* local include files -- need to be after the system ones */
@@ -105,12 +133,14 @@ int isnan(double value);
 /* rrd info interface */
 enum info_type   { RD_I_VAL=0,
               RD_I_CNT,
-              RD_I_STR  };
+              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 {
@@ -120,16 +150,14 @@ typedef struct info_t {
     struct info_t   *next;
 } info_t;
 
-
 info_t *rrd_info(int, char **);
+info_t *rrd_update_v(int, char **);
+char * sprintf_alloc(char *, ...);
+info_t *info_push(info_t *, char *, enum info_type, infoval);
 
 /* HELPER FUNCTIONS */
-int GifSize(FILE *, long *, long *);
-int PngSize(FILE *, long *, long *);
-int PngSize(FILE *, long *, long *);
 
-#include <gd.h>
-void gdImagePng(gdImagePtr im, FILE *out);
+int PngSize(FILE *, long *, long *);
 
 int rrd_create_fn(char *file_name, rrd_t *rrd);
 int rrd_fetch_fn(char *filename, enum cf_en cf_idx,
@@ -140,10 +168,11 @@ int rrd_fetch_fn(char *filename, enum cf_en cf_idx,
                 rrd_value_t **data);
 
 void rrd_free(rrd_t *rrd);
+void rrd_freemem(void *mem);
 void rrd_init(rrd_t *rrd);
 
-int rrd_open(char *file_name, FILE **in_file, rrd_t *rrd, int rdwr);
-int readfile(char *file, char **buffer, int skipfirst);
+int rrd_open(const char *file_name, FILE **in_file, rrd_t *rrd, int rdwr);
+int readfile(const char *file, char **buffer, int skipfirst);
 
 #define RRD_READONLY    0
 #define RRD_READWRITE   1
@@ -153,11 +182,13 @@ enum dst_en dst_conv(char *string);
 long ds_match(rrd_t *rrd,char *ds_nam);
 double rrd_diff(char *a, char *b);
 
-#endif
+    /* 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
 
 #ifdef  __cplusplus
 }
 #endif
-
-