Add HostPDRHandler class

HostPDRHandler has an API to fetch PDRs from the host.

The class HostPDRHandler has a function fetchPDR which basically calls
GetPDR on the host using libpldm's pldm_send_recv API.

The retrieved PDRs are stored in the BMCs primary PDR repo.

Change-Id: Ifd727316caf37d49f17e117b32ee105f6d941e0e
Signed-off-by: Pavithra Barithaya <pbaritha@in.ibm.com>
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/libpldmresponder/platform.hpp b/libpldmresponder/platform.hpp
index 696434b..893a709 100644
--- a/libpldmresponder/platform.hpp
+++ b/libpldmresponder/platform.hpp
@@ -3,6 +3,7 @@
 #include "config.h"
 
 #include "handler.hpp"
+#include "host_pdr_handler.hpp"
 #include "libpldmresponder/pdr.hpp"
 #include "libpldmresponder/pdr_utils.hpp"
 #include "utils.hpp"
@@ -53,8 +54,10 @@
 {
   public:
     Handler(const std::string& dir, pldm_pdr* repo,
+            HostPDRHandler* hostPDRHandler,
             const std::optional<EventMap>& addOnHandlersMap = std::nullopt) :
-        pdrRepo(repo)
+        pdrRepo(repo),
+        hostPDRHandler(hostPDRHandler)
     {
         generate(dir, pdrRepo);
 
@@ -340,6 +343,7 @@
     pdr_utils::Repo pdrRepo;
     uint16_t nextEffecterId{};
     DbusObjMaps dbusObjMaps{};
+    HostPDRHandler* hostPDRHandler;
 };
 
 } // namespace platform