Listener: Parse correlated properties JSON
This commit adds changes in Listener class to parse correlated
properties JSON file. Listener class needs to have the parsed correlated
properties JSON in memory to listen for property changes on specific
object path, interface and update correlated property/properties.
Change-Id: I8f6881fc106edf995814fa16218f680757be079f
Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.com>
diff --git a/vpd-manager/include/listener.hpp b/vpd-manager/include/listener.hpp
index de75b8b..9a6d627 100644
--- a/vpd-manager/include/listener.hpp
+++ b/vpd-manager/include/listener.hpp
@@ -4,6 +4,7 @@
#include "types.hpp"
#include "worker.hpp"
+#include <nlohmann/json.hpp>
#include <sdbusplus/asio/object_server.hpp>
#include <memory>
@@ -123,5 +124,8 @@
// Map of inventory path to Present property match object
types::FruPresenceMatchObjectMap m_fruPresenceMatchObjectMap;
+
+ // Parsed correlated properties JSON.
+ nlohmann::json m_correlatedPropJson{};
};
} // namespace vpd
diff --git a/vpd-manager/src/listener.cpp b/vpd-manager/src/listener.cpp
index 333ace3..bc9ef94 100644
--- a/vpd-manager/src/listener.cpp
+++ b/vpd-manager/src/listener.cpp
@@ -252,6 +252,13 @@
{
try
{
+ m_correlatedPropJson =
+ jsonUtility::getParsedJson(i_correlatedPropJsonFile);
+ if (m_correlatedPropJson.empty())
+ {
+ throw JsonException("Failed to parse correlated properties JSON",
+ i_correlatedPropJsonFile);
+ }
/* TODO:
Parse correlated_properties JSON, and register callback for all
interfaces under all services */