Map state effecter id to D-Bus object path

Add a way to map state effecter ids to D-Bus object paths (multiple
paths in case the effecter is composite).

The mapping is specified in the state effecter PDR JSON (because the
mapping is system specific), and is stored in a map in memory. This will
be used by the get/set state effecter commands to route effecter ids to
D-Bus.

Change-Id: Ic79fae2445fd257302dd1298830f58b91fed9a1f
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/libpldmresponder/effecters.hpp b/libpldmresponder/effecters.hpp
index a0704df..2dfa1f5 100644
--- a/libpldmresponder/effecters.hpp
+++ b/libpldmresponder/effecters.hpp
@@ -2,6 +2,9 @@
 
 #include <stdint.h>
 
+#include <string>
+#include <vector>
+
 namespace pldm
 {
 
@@ -19,6 +22,26 @@
  */
 Id nextId();
 
+namespace dbus_mapping
+{
+using Paths = std::vector<std::string>;
+
+/** @brief Add an effecter id -> D-Bus objects mapping
+ *
+ *  @param[in] id - effecter id
+ *  @param[in] paths - list of D-Bus object paths
+ */
+void add(Id id, Paths&& paths);
+
+/** @brief Retrieve an effecter id -> D-Bus objects mapping
+ *
+ *  @param[in] id - effecter id
+ *
+ *  @return Paths - list of D-Bus object paths
+ */
+Paths get(Id id);
+} // namespace dbus_mapping
+
 } // namespace effecter
 } // namespace responder
 } // namespace pldm