Add Timer support to TachSensor

Add a Timer object to the TachSensor class

Change-Id: I419b5712de9e8e94f2a08de84d13170e44c33c7a
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/monitor/tach_sensor.hpp b/monitor/tach_sensor.hpp
index 003763c..7a65b64 100644
--- a/monitor/tach_sensor.hpp
+++ b/monitor/tach_sensor.hpp
@@ -3,6 +3,7 @@
 #include <chrono>
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/server.hpp>
+#include "timer.hpp"
 
 namespace phosphor
 {
@@ -46,12 +47,14 @@
          * @param[in] hasTarget - if the sensor supports
          *                        setting the speed
          * @param[in] timeout - Normal timeout value to use
+         * @param[in] events - sd_event pointer
          */
         TachSensor(sdbusplus::bus::bus& bus,
                    Fan& fan,
                    const std::string& id,
                    bool hasTarget,
-                   size_t timeout);
+                   size_t timeout,
+                   std::shared_ptr<sd_event>& events);
 
         /**
          * @brief Returns the target speed value
@@ -94,6 +97,19 @@
             _functional = functional;
         }
 
+        /**
+         * Returns the timer object for this sensor
+         */
+        inline phosphor::fan::util::Timer& getTimer()
+        {
+            return _timer;
+        }
+
+        /**
+         * @brief Returns the timeout value to use for the sensor
+         */
+        std::chrono::microseconds getTimeout();
+
     private:
 
         /**
@@ -197,6 +213,11 @@
         const size_t _timeout;
 
         /**
+         * The timer object
+         */
+        phosphor::fan::util::Timer _timer;
+
+        /**
          * @brief The match object for the Value properties changed signal
          */
         std::unique_ptr<sdbusplus::server::match::match> tachSignal;