fix off by 1 error
[rrdtool.git] / src / rrd_tool.h
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
9
10 #ifndef _RRD_TOOL_H
11 #define _RRD_TOOL_H
12
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
20
21 #include "rrd.h"
22
23 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
24
25 /* Win32 only includes */
26
27 #include <float.h>      /* for _isnan  */
28 #include <io.h>         /* for chdir   */
29
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);
43
44 #else
45
46 /* unix-only includes */
47 #if !defined isnan && !defined HAVE_ISNAN
48     int       isnan(
49     double value);
50 #endif
51
52 #endif
53
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
61
62 #include "rrd_format.h"
63
64 #ifndef max
65 #define max(a,b) ((a) > (b) ? (a) : (b))
66 #endif
67
68 #ifndef min
69 #define min(a,b) ((a) < (b) ? (a) : (b))
70 #endif
71
72 #define DIM(x) (sizeof(x)/sizeof(x[0]))
73
74     char     *sprintf_alloc(
75     char *,
76     ...);
77
78 /* HELPER FUNCTIONS */
79
80     int       PngSize(
81     FILE *,
82     long *,
83     long *);
84
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);
97
98
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
107
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)
114
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);
127
128     const char *cf_to_string (enum cf_en cf);
129
130 #endif /* _RRD_TOOL_H */
131
132 #ifdef  __cplusplus
133 }
134 #endif