X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_format.c;h=fba9eb0e85a62105cdb9f88a2097bab4b692648a;hb=afcd0eb5b0e71964e9c5691b4a9794c2f4059928;hp=3e387e8d7695e49e97d83076668db2f525a35843;hpb=a5eb18ad8c70e530a2e28ed435a0f52da0f5bee0;p=rrdtool.git diff --git a/src/rrd_format.c b/src/rrd_format.c index 3e387e8..fba9eb0 100644 --- a/src/rrd_format.c +++ b/src/rrd_format.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.3rc8 Copyright by Tobi Oetiker, 1997-2008 + * RRDtool 1.4.3 Copyright by Tobi Oetiker, 1997-2010 ***************************************************************************** * rrd_format.c RRD Database Format helper functions ***************************************************************************** @@ -48,6 +48,9 @@ * *****************************************************************************/ #include "rrd_tool.h" +#ifdef WIN32 +#include "stdlib.h" +#endif #define converter(VV,VVV) \ if (strcmp(#VV, string) == 0) return VVV; @@ -62,7 +65,7 @@ enum dst_en dst_conv( converter(DERIVE, DST_DERIVE) converter(COMPUTE, DST_CDEF) rrd_set_error("unknown data acquisition function '%s'", string); - return (-1); + return (enum dst_en)(-1); } @@ -81,9 +84,29 @@ enum cf_en cf_conv( converter(DEVSEASONAL, CF_DEVSEASONAL) converter(FAILURES, CF_FAILURES) rrd_set_error("unknown consolidation function '%s'", string); - return (-1); + return (enum cf_en)(-1); } +const char *cf_to_string (enum cf_en cf) +{ + switch (cf) + { + case CF_AVERAGE: return "AVERAGE"; + case CF_MINIMUM: return "MIN"; + case CF_MAXIMUM: return "MAX"; + case CF_LAST: return "LAST"; + case CF_HWPREDICT: return "HWPREDICT"; + case CF_SEASONAL: return "SEASONAL"; + case CF_DEVPREDICT: return "DEVPREDICT"; + case CF_DEVSEASONAL: return "DEVSEASONAL"; + case CF_FAILURES: return "FAILURES"; + case CF_MHWPREDICT: return "MHWPREDICT"; + + default: + return NULL; + } +} /* char *cf_to_string */ + #undef converter long ds_match( @@ -98,3 +121,15 @@ long ds_match( rrd_set_error("unknown data source name '%s'", ds_nam); return -1; } + +off_t rrd_get_header_size( + rrd_t *rrd) +{ + return sizeof(stat_head_t) + \ + sizeof(ds_def_t) * rrd->stat_head->ds_cnt + \ + sizeof(rra_def_t) * rrd->stat_head->rra_cnt + \ + ( atoi(rrd->stat_head->version) < 3 ? sizeof(time_t) : sizeof(live_head_t) ) + \ + sizeof(pdp_prep_t) * rrd->stat_head->ds_cnt + \ + sizeof(cdp_prep_t) * rrd->stat_head->ds_cnt * rrd->stat_head->rra_cnt + \ + sizeof(rra_ptr_t) * rrd->stat_head->rra_cnt; +}