platform-mc: Added Terminus/TerminusManager class

Added requester::sendRecvPldmMsg awaiter type to be able to send and
receive PLDM message by coroutine.
Added TerminusManager to discover terminus from EID list updated by
MCTPDiscovery class. The TerminusManager will initialize TID.

Signed-off-by: Gilbert Chen <gilbert.chen@arm.com>
Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com>
Change-Id: Ifa5bdfff50648f1d7fba8710e160de662e8f9e06
diff --git a/platform-mc/manager.cpp b/platform-mc/manager.cpp
new file mode 100644
index 0000000..7e79a29
--- /dev/null
+++ b/platform-mc/manager.cpp
@@ -0,0 +1,35 @@
+#include "manager.hpp"
+
+#include <phosphor-logging/lg2.hpp>
+
+PHOSPHOR_LOG2_USING;
+
+namespace pldm
+{
+namespace platform_mc
+{
+exec::task<int> Manager::beforeDiscoverTerminus()
+{
+    // Add any setup or checks needed before discovering a terminus
+    // If any setup/check fails, return the appropriate error code
+    // For now, we assume everything is successful
+    co_return PLDM_SUCCESS;
+}
+
+exec::task<int> Manager::afterDiscoverTerminus()
+{
+    auto rc = co_await platformManager.initTerminus();
+    if (rc != PLDM_SUCCESS)
+    {
+        lg2::error("Failed to initialize platform manager, error {RC}", "RC",
+                   rc);
+    }
+    else
+    {
+        lg2::info("Successfully initialized platform manager");
+    }
+    co_return rc;
+}
+
+} // namespace platform_mc
+} // namespace pldm