start-update-interface: implement update manager

Implement the update manager module for the new daemon inheriting from
the Update D-Bus interface. Link with new interface APIs from
item_updater and software utils. New daemon will continue to exist at
runtime alongwith old flow, until old flow is deprecated and removed.
This change is based on -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Change-Id: I0ecbbb8fc5340de7f66f8870ae389b405a2debee
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/software_manager.cpp b/software_manager.cpp
index 15f7dbe..3ee9f1a 100644
--- a/software_manager.cpp
+++ b/software_manager.cpp
@@ -1,27 +1,24 @@
-#include "config.h"
+#include "item_updater.hpp"
 
 #include <phosphor-logging/lg2.hpp>
 #include <sdbusplus/async.hpp>
-#include <xyz/openbmc_project/Software/Update/server.hpp>
+
+using ItemUpdaterIntf = phosphor::software::updater::ItemUpdater;
 
 PHOSPHOR_LOG2_USING;
 
 int main()
 {
     info("Creating Software Manager");
-
     auto path = std::string(SOFTWARE_OBJPATH) + "/bmc";
     sdbusplus::async::context ctx;
-    sdbusplus::server::manager_t manager{ctx, path.c_str()};
+    sdbusplus::server::manager_t manager{ctx, SOFTWARE_OBJPATH};
 
-    // NOLINTNEXTLINE(readability-static-accessed-through-instance)
-    ctx.spawn([=](sdbusplus::async::context& ctx) -> sdbusplus::async::task<> {
-        constexpr auto serviceName = "xyz.openbmc_project.Software.Manager";
-        ctx.request_name(serviceName);
-        co_return;
-    }(ctx));
+    constexpr auto serviceName = "xyz.openbmc_project.Software.Manager";
+
+    ItemUpdaterIntf itemUpdater{ctx, path};
+    ctx.request_name(serviceName);
 
     ctx.run();
-
     return 0;
 }