X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_tool.h;h=86c4aa8ce22271053c3afcef5f0c297e8851c318;hp=0a91d37877982afc64fa41a0f8c3a89897626b44;hb=8f9c2c2b3c3f8a65e24dd9d8d612eafe48ccfb2e;hpb=5a7eb5b62b485b61ddb80a40ef22f4337cf2289f diff --git a/src/rrd_tool.h b/src/rrd_tool.h index 0a91d37..86c4aa8 100644 --- a/src/rrd_tool.h +++ b/src/rrd_tool.h @@ -1,124 +1,62 @@ /***************************************************************************** - * RRDtool 1.2.5 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.4.2 Copyright by Tobi Oetiker, 1997-2009 ***************************************************************************** * rrd_tool.h Common Header File *****************************************************************************/ #ifdef __cplusplus -extern "C" { +extern "C" { #endif - #ifndef _RRD_TOOL_H #define _RRD_TOOL_H -#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) -#include "../confignt/config.h" -#else #ifdef HAVE_CONFIG_H -#include -#endif -#endif - -#ifdef MUST_DISABLE_SIGFPE -#include -#endif - -#ifdef MUST_DISABLE_FPMASK -#include -#endif - -#include -#include -#include -#include -#include -#include - -#if HAVE_SYS_PARAM_H -# include -#endif - -#ifndef MAXPATH -# define MAXPATH 1024 -#endif - -#if HAVE_MATH_H -# include -#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 -# define NAMLEN(dirent) strlen((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) (dirent)->d_namlen -# if HAVE_SYS_NDIR_H -# include -# endif -# if HAVE_SYS_DIR_H -# include -# endif -# if HAVE_NDIR_H -# include -# endif -#endif - -#if HAVE_SYS_TYPES_H -# include -#endif - -#if HAVE_SYS_STAT_H -# include -#endif - - -#if HAVE_UNISTD_H -# include -#endif -#if HAVE_SYS_TIME_H -# include -#endif -#if HAVE_SYS_TIMES_H -# include -#endif -#if HAVE_SYS_RESOURCE_H -# include -#if (defined(__svr4__) && defined(__sun__)) -/* Solaris headers (pre 2.6) don't have a getrusage prototype. - Use this instead. */ -extern int getrusage(int, struct rusage *); -#endif /* __svr4__ && __sun__ */ +#include "../rrd_config.h" +#elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) +#include "../win32/config.h" #endif #include "rrd.h" -#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) /* Win32 only includes */ -#include /* for _isnan */ -#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); +#include /* for _isnan */ +#include /* for chdir */ + + 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); #else /* unix-only includes */ -#ifndef isnan -int isnan(double value); +#if !defined isnan && !defined HAVE_ISNAN + int isnan( + double value); #endif #endif /* local include files -- need to be after the system ones */ -#include "getopt.h" +#ifdef HAVE_GETOPT_LONG +#define _GNU_SOURCE +#include +#else +#include "rrd_getopt.h" +#endif + #include "rrd_format.h" #ifndef max @@ -127,68 +65,64 @@ int isnan(double value); #ifndef min #define min(a,b) ((a) < (b) ? (a) : (b)) -#endif +#endif #define DIM(x) (sizeof(x)/sizeof(x[0])) -/* rrd info interface */ -enum info_type { RD_I_VAL=0, - RD_I_CNT, - 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 { - char *key; - enum info_type type; - union infoval value; - 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); + char *sprintf_alloc( + char *, + ...); /* HELPER FUNCTIONS */ -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, - time_t *start,time_t *end, - unsigned long *step, - unsigned long *ds_cnt, - char ***ds_namv, - rrd_value_t **data); - -void rrd_free(rrd_t *rrd); -void rrd_freemem(void *mem); -void rrd_init(rrd_t *rrd); - -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 - -enum cf_en cf_conv(char *string); -enum dst_en dst_conv(char *string); -long ds_match(rrd_t *rrd,char *ds_nam); -double rrd_diff(char *a, char *b); - - /* 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 + int PngSize( + FILE *, + long *, + long *); + + int rrd_create_fn( + const char *file_name, + rrd_t *rrd); + int rrd_fetch_fn (const char *filename, + enum cf_en cf_idx, + time_t *start, + time_t *end, + unsigned long *step, + unsigned long *ds_cnt, + char ***ds_namv, + rrd_value_t **data); + + +#ifdef HAVE_LIBDBI +int rrd_fetch_fn_libdbi(const char *filename, enum cf_en cf_idx, + time_t *start,time_t *end, + unsigned long *step, + unsigned long *ds_cnt, + char ***ds_namv, + rrd_value_t **data); +#endif + +#define RRD_READONLY (1<<0) +#define RRD_READWRITE (1<<1) +#define RRD_CREAT (1<<2) +#define RRD_READAHEAD (1<<3) +#define RRD_COPY (1<<4) +#define RRD_EXCL (1<<5) + + enum cf_en cf_conv( + const char *string); + enum dst_en dst_conv( + char *string); + long ds_match( + rrd_t *rrd, + char *ds_nam); + off_t rrd_get_header_size( + rrd_t *rrd); + double rrd_diff( + char *a, + char *b); + +#endif /* _RRD_TOOL_H */ #ifdef __cplusplus }