Use visitor instead of pulling values directly

Sensor thresholds pull out an int64_t and immediately
assign it to a double. Use a visitor instead to avoid
the intermediate and add flexibility / saftey to type
readings.

Tested-By: Verifed sensor list still worked.
Change-Id: If49bf54ec1c0636b3549d433b86ecdbd1ea99b0d
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index ee62e17..609fdfd 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -619,8 +619,10 @@
                                                      info.sensorPath,
                                                      warningThreshIntf);
 
-    double warnLow = warnThresholds["WarningLow"].get<int64_t>();
-    double warnHigh = warnThresholds["WarningHigh"].get<int64_t>();
+    double warnLow = mapbox::util::apply_visitor(ipmi::VariantToDoubleVisitor(),
+                                                 warnThresholds["WarningLow"]);
+    double warnHigh = mapbox::util::apply_visitor(
+        ipmi::VariantToDoubleVisitor(), warnThresholds["WarningHigh"]);
 
     if (warnLow != 0)
     {
@@ -644,8 +646,10 @@
                                                      service,
                                                      info.sensorPath,
                                                      criticalThreshIntf);
-    double critLow = critThresholds["CriticalLow"].get<int64_t>();
-    double critHigh = critThresholds["CriticalHigh"].get<int64_t>();
+    double critLow = mapbox::util::apply_visitor(ipmi::VariantToDoubleVisitor(),
+                                                 critThresholds["CriticalLow"]);
+    double critHigh = mapbox::util::apply_visitor(
+        ipmi::VariantToDoubleVisitor(), critThresholds["CriticalHigh"]);
 
     if (critLow != 0)
     {