1 /*****************************************************************************
2 * RRDtool 1.4.3 Copyright by Tobi Oetiker, 1997-2010
3 *****************************************************************************
4 * rrd_tool.h Common Header File
5 *****************************************************************************/
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 #ifndef _RRD_TOOL_H
11 #define _RRD_TOOL_H
13 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
14 #include "../win32/config.h"
15 #else
16 #ifdef HAVE_CONFIG_H
17 #include "../rrd_config.h"
18 #endif
19 #endif
21 #include "rrd.h"
23 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
25 /* Win32 only includes */
27 #include <float.h> /* for _isnan */
28 #include <io.h> /* for chdir */
30 struct tm *localtime_r(
31 const time_t *timep,
32 struct tm *result);
33 char *ctime_r(
34 const time_t *timep,
35 char *result);
36 struct tm *gmtime_r(
37 const time_t *timep,
38 struct tm *result);
39 char *strtok_r(
40 char *str,
41 const char *sep,
42 char **last);
44 #else
46 /* unix-only includes */
47 #if !defined isnan && !defined HAVE_ISNAN
48 int isnan(
49 double value);
50 #endif
52 #endif
54 /* local include files -- need to be after the system ones */
55 #ifdef HAVE_GETOPT_LONG
56 #define _GNU_SOURCE
57 #include <getopt.h>
58 #else
59 #include "rrd_getopt.h"
60 #endif
62 #include "rrd_format.h"
64 #ifndef max
65 #define max(a,b) ((a) > (b) ? (a) : (b))
66 #endif
68 #ifndef min
69 #define min(a,b) ((a) < (b) ? (a) : (b))
70 #endif
72 #define DIM(x) (sizeof(x)/sizeof(x[0]))
74 char *sprintf_alloc(
75 char *,
76 ...);
78 /* HELPER FUNCTIONS */
80 int PngSize(
81 FILE *,
82 long *,
83 long *);
85 int rrd_create_fn(
86 const char *file_name,
87 rrd_t *rrd,
88 int no_overwrite);
89 int rrd_fetch_fn (const char *filename,
90 enum cf_en cf_idx,
91 time_t *start,
92 time_t *end,
93 unsigned long *step,
94 unsigned long *ds_cnt,
95 char ***ds_namv,
96 rrd_value_t **data);
99 #ifdef HAVE_LIBDBI
100 int rrd_fetch_fn_libdbi(const char *filename, enum cf_en cf_idx,
101 time_t *start,time_t *end,
102 unsigned long *step,
103 unsigned long *ds_cnt,
104 char ***ds_namv,
105 rrd_value_t **data);
106 #endif
108 #define RRD_READONLY (1<<0)
109 #define RRD_READWRITE (1<<1)
110 #define RRD_CREAT (1<<2)
111 #define RRD_READAHEAD (1<<3)
112 #define RRD_COPY (1<<4)
113 #define RRD_EXCL (1<<5)
115 enum cf_en cf_conv(
116 const char *string);
117 enum dst_en dst_conv(
118 char *string);
119 long ds_match(
120 rrd_t *rrd,
121 char *ds_nam);
122 off_t rrd_get_header_size(
123 rrd_t *rrd);
124 double rrd_diff(
125 char *a,
126 char *b);
128 const char *cf_to_string (enum cf_en cf);
130 #endif /* _RRD_TOOL_H */
132 #ifdef __cplusplus
133 }
134 #endif