presence: Switch to new framework

Switch the main application logic to the output produced by
the new parser previously.
Remove unused code.

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: If8b262bd80fd0f0135aeea55e578fb3c7f44339a
diff --git a/presence/tach_detect.cpp b/presence/tach_detect.cpp
index 6ec5a5c..da0f40f 100644
--- a/presence/tach_detect.cpp
+++ b/presence/tach_detect.cpp
@@ -13,79 +13,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <phosphor-logging/log.hpp>
-#include <vector>
-#include "fan_enclosure.hpp"
-#include "fan_detect_defs.hpp"
 #include "generated.hpp"
 #include "sdbusplus.hpp"
-#include "tach_sensor.hpp"
+#include "sdevent.hpp"
 
 
 int main(void)
 {
     using namespace phosphor::fan;
-    using namespace std::literals::string_literals;
-    using namespace phosphor::logging;
 
-    std::vector<std::unique_ptr<phosphor::fan::presence::FanEnclosure>> fans;
+    auto& event = util::SDEvent::getEvent();
+    event.attach(util::SDBusPlus::getBus());
 
-    for (auto const& detectMap: fanDetectMap)
+    for (auto& p: presence::ConfigPolicy::get())
     {
-        if (detectMap.first == "tach")
-        {
-            for (auto const& fanProp: detectMap.second)
-            {
-                auto path = "/xyz/openbmc_project/inventory"s +
-                    std::get<0>(fanProp);
-
-                auto state = presence::UNKNOWN;
-                try
-                {
-                    auto boolstate = util::SDBusPlus::getProperty<bool>(
-                            path,
-                            "xyz.openbmc_project.Inventory.Item"s,
-                            "Present"s);
-                    state = boolstate ?
-                        presence::PRESENT : presence::NOT_PRESENT;
-                }
-                catch (const std::exception& err)
-                {
-                    log<level::INFO>(err.what());
-                }
-
-                auto fan = std::make_unique<
-                    phosphor::fan::presence::FanEnclosure>(fanProp,
-                                                           state);
-                for (auto const &fanSensor: std::get<2>(fanProp))
-                {
-                    auto initialSpeed = static_cast<int64_t>(0);
-                    auto sensorPath =
-                        "/xyz/openbmc_project/sensors/fan_tach/"s +
-                        fanSensor;
-                    initialSpeed = util::SDBusPlus::getProperty<int64_t>(
-                            sensorPath,
-                            "xyz.openbmc_project.Sensor.Value"s,
-                            "Value"s);
-
-                    auto sensor = std::make_unique<
-                        phosphor::fan::presence::TachSensor>(fanSensor,
-                                                             *fan,
-                                                             initialSpeed != 0);
-                    fan->addSensor(std::move(sensor));
-                }
-
-                fan->updInventory();
-                fans.push_back(std::move(fan));
-            }
-        }
+        p->monitor();
     }
 
-    while (true)
-    {
-        // Respond to dbus signals
-        util::SDBusPlus::getBus().process_discard();
-        util::SDBusPlus::getBus().wait();
-    }
-    return 0;
+    event.loop();
+
+    // The loop should never exit.  Exit with
+    // non zero status just in case.
+    return 1;
 }