couchdb plugin: Add the DERIVE and ABSOLUTE data source types.
authorFlorian Forster <octo@huhu.verplant.org>
Wed, 1 Jul 2009 12:54:55 +0000 (14:54 +0200)
committerFlorian Forster <octo@noris.net>
Wed, 1 Jul 2009 13:42:25 +0000 (15:42 +0200)
src/couchdb.c

index 361e9e9..30f56da 100644 (file)
@@ -142,9 +142,15 @@ static int couchcb_integer (void *ctx, long val)
 
     type = couchdb_get_type (key);
     if (type == DS_TYPE_COUNTER)
-      vt.counter = val;
+      vt.counter = (counter_t) val;
+    else if (type == DS_TYPE_GAUGE)
+      vt.gauge = (gauge_t) val;
+    else if (type == DS_TYPE_DERIVE)
+      vt.derive = (derive_t) val;
+    else if (type == DS_TYPE_ABSOLUTE)
+      vt.absolute = (absolute_t) val;
     else
-      vt.gauge = (double)val;
+      return 0;
 
     couchdb_submit (db, key, &vt);
   }
@@ -162,10 +168,16 @@ static int couchcb_double (void *ctx, double val)
     int type;
 
     type = couchdb_get_type (key);
-    if (type == DS_TYPE_GAUGE)
-      vt.gauge = val;
+    if (type == DS_TYPE_COUNTER)
+      vt.counter = (counter_t) val;
+    else if (type == DS_TYPE_GAUGE)
+      vt.gauge = (gauge_t) val;
+    else if (type == DS_TYPE_DERIVE)
+      vt.derive = (derive_t) val;
+    else if (type == DS_TYPE_ABSOLUTE)
+      vt.absolute = (absolute_t) val;
     else
-      vt.counter = val;
+      return 0;
 
     couchdb_submit (db, key, &vt);
   }