set version to 1.4.0 for all files
[rrdtool.git] / src / rrd_format.c
index d7a747d..16e4f1f 100644 (file)
@@ -1,10 +1,29 @@
 /*****************************************************************************
- * RRDtool 1.0.33  Copyright Tobias Oetiker, 1999
+ * RRDtool 1.4.0  Copyright by Tobi Oetiker, 1997-2009
  *****************************************************************************
  * rrd_format.c  RRD Database Format helper functions
  *****************************************************************************
  * $Id$
  * $Log$
+ * Revision 1.5  2004/05/18 18:53:03  oetiker
+ * big spell checking patch -- slif@bellsouth.net
+ *
+ * Revision 1.4  2003/02/13 07:05:27  oetiker
+ * Find attached the patch I promised to send to you. Please note that there
+ * are three new source files (src/rrd_is_thread_safe.h, src/rrd_thread_safe.c
+ * and src/rrd_not_thread_safe.c) and the introduction of librrd_th. This
+ * library is identical to librrd, but it contains support code for per-thread
+ * global variables currently used for error information only. This is similar
+ * to how errno per-thread variables are implemented.  librrd_th must be linked
+ * alongside of libpthred
+ *
+ * There is also a new file "THREADS", holding some documentation.
+ *
+ * -- Peter Stamfest <peter@stamfest.at>
+ *
+ * Revision 1.3  2002/02/01 20:34:49  oetiker
+ * fixed version number and date/time
+ *
  * Revision 1.2  2001/03/10 23:54:39  oetiker
  * Support for COMPUTE data sources (CDEF data sources). Removes the RPN
  * parser and calculator from rrd_graph and puts then in a new file,
    if (strcmp(#VV, string) == 0) return VVV;
 
 /* conversion functions to allow symbolic entry of enumerations */
-enum dst_en dst_conv(char *string)
+enum dst_en dst_conv(
+    char *string)
 {
-    converter(COUNTER,DST_COUNTER)
-    converter(ABSOLUTE,DST_ABSOLUTE)
-    converter(GAUGE,DST_GAUGE)
-    converter(DERIVE,DST_DERIVE)
-    converter(COMPUTE,DST_CDEF)
-    rrd_set_error("unknown data aquisition function '%s'",string);
-    return(-1);
+    converter(COUNTER, DST_COUNTER)
+        converter(ABSOLUTE, DST_ABSOLUTE)
+        converter(GAUGE, DST_GAUGE)
+        converter(DERIVE, DST_DERIVE)
+        converter(COMPUTE, DST_CDEF)
+        rrd_set_error("unknown data acquisition function '%s'", string);
+    return (enum dst_en)(-1);
 }
 
 
-enum cf_en cf_conv(char *string)
+enum cf_en cf_conv(
+    const char *string)
 {
 
-    converter(AVERAGE,CF_AVERAGE)
-    converter(MIN,CF_MINIMUM)
-    converter(MAX,CF_MAXIMUM)
-    converter(LAST,CF_LAST)
-    converter(HWPREDICT,CF_HWPREDICT)
-    converter(DEVPREDICT,CF_DEVPREDICT)
-    converter(SEASONAL,CF_SEASONAL)
-    converter(DEVSEASONAL,CF_DEVSEASONAL)
-    converter(FAILURES,CF_FAILURES)
-    rrd_set_error("unknown consolidation function '%s'",string);
-    return(-1);
+    converter(AVERAGE, CF_AVERAGE)
+        converter(MIN, CF_MINIMUM)
+        converter(MAX, CF_MAXIMUM)
+        converter(LAST, CF_LAST)
+        converter(HWPREDICT, CF_HWPREDICT)
+        converter(MHWPREDICT, CF_MHWPREDICT)
+        converter(DEVPREDICT, CF_DEVPREDICT)
+        converter(SEASONAL, CF_SEASONAL)
+        converter(DEVSEASONAL, CF_DEVSEASONAL)
+        converter(FAILURES, CF_FAILURES)
+        rrd_set_error("unknown consolidation function '%s'", string);
+    return (enum cf_en)(-1);
 }
 
-#undef converter       
+#undef converter
 
-long
-ds_match(rrd_t *rrd,char *ds_nam){
-    long i;
-    for(i=0;i<rrd->stat_head->ds_cnt;i++)
-       if ((strcmp(ds_nam,rrd->ds_def[i].ds_nam))==0)
-           return i;
-    rrd_set_error("unknown data source name '%s'",ds_nam);
+long ds_match(
+    rrd_t *rrd,
+    char *ds_nam)
+{
+    unsigned long i;
+
+    for (i = 0; i < rrd->stat_head->ds_cnt; i++)
+        if ((strcmp(ds_nam, rrd->ds_def[i].ds_nam)) == 0)
+            return i;
+    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 + \
+        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;
+}