Add inventory update support

Set a fan's Functional property to false when
it has been out of spec for too long.  When it
is back in spec, set it back to functional.

Change-Id: I264129479c58fd296df7c3a1d3d42f5d7aa7b60b
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/monitor/fan.hpp b/monitor/fan.hpp
index 9aeccd2..910b4eb 100644
--- a/monitor/fan.hpp
+++ b/monitor/fan.hpp
@@ -45,6 +45,15 @@
  */
 class Fan
 {
+    using Property = std::string;
+    using Value = sdbusplus::message::variant<bool>;
+    using PropertyMap = std::map<Property, Value>;
+
+    using Interface = std::string;
+    using InterfaceMap = std::map<Interface, PropertyMap>;
+
+    using Object = sdbusplus::message::object_path;
+    using ObjectMap = std::map<Object, InterfaceMap>;
 
     public:
 
@@ -117,6 +126,22 @@
          */
         bool tooManySensorsNonfunctional();
 
+        /**
+         * @brief Updates the Functional property in the inventory
+         *        for the fan based on the value passed in.
+         *
+         * @param[in] functional - If the Functional property should
+         *                         be set to true or false.
+         */
+        void updateInventory(bool functional);
+
+        /**
+         * @brief Returns the object map to use when updating the inventory
+         *
+         * @param[in] functional - If the Functional property should
+         *                         be set to true or false.
+         */
+        ObjectMap getObjectMap(bool functional);
 
         /**
          * @brief the dbus object