Use gpioplus for specifying gpio gating

A GPIO can control whether a hwmon sensor is readable.  This module
allows one to specify whether a sensor is gated and by what GPIO.  This
is often the case for battery voltages, such that the battery isn't
drained constantly by being left open.

For each sensor where you need GPIO locking:
GPIOCHIP_in1=0
GPIO_in1=53

such that GPIOCHIP is the gpiochip: /sys/bus/gpio/devices/gpiochip{id}
such that GPIO is the line offset.
the value used to unlock the sensor via gpio is 1
after 1 is written to the gpio, it pauses for 500ms

Tested: Verified the failure case for invalid gpio fields.  Verified
correct behavior on two platforms.
Change-Id: I2fa12848972075cad0e0f69c0bfa6382e15d4f50
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/gpio_handle.hpp b/gpio_handle.hpp
new file mode 100644
index 0000000..f7d4a5e
--- /dev/null
+++ b/gpio_handle.hpp
@@ -0,0 +1,20 @@
+#pragma once
+
+#include <gpioplus/handle.hpp>
+#include <memory>
+#include <string>
+
+namespace gpio
+{
+
+/**
+ * Method called to validate inputs and create a GpioHandle.
+ *
+ * @param[in] gpiochip - gpiochip id as string, e.g. "0", or "1"
+ * @param[in] line - gpio line offset as string.
+ * @return A gpioplus::Handle on success nullptr on failure.
+ */
+std::unique_ptr<gpioplus::Handle> BuildGpioHandle(const std::string& gpiochip,
+                                                  const std::string& line);
+
+} // namespace gpio