X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Frrd_tool.h;h=92c99aee53039611dff999f114d38bb4ffbcec36;hb=d0371d8311c9008255a6e50ff296f349f74e10e5;hp=f21a17a7eb0d27f2c3bc41880d0feb627e0d1040;hpb=3c6f40dc07acfbcb48480e4b3153a5f42f6e96fe;p=rrdtool.git diff --git a/src/rrd_tool.h b/src/rrd_tool.h index f21a17a..92c99ae 100644 --- a/src/rrd_tool.h +++ b/src/rrd_tool.h @@ -110,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 */ @@ -129,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 { @@ -144,8 +150,10 @@ 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 */ @@ -164,7 +172,9 @@ 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 rrd_open_r(char *file_name, FILE **in_file, rrd_t *rrd, int rdwr); int readfile(char *file, char **buffer, int skipfirst); +int readfile_r(char *file, char **buffer, int skipfirst); #define RRD_READONLY 0 #define RRD_READWRITE 1 @@ -174,6 +184,14 @@ 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); + +/* just a defensive work-around... */ +#define strerror(x) rrd_strerror(x) + #endif #ifdef __cplusplus