blob: 2b0e2a70957e02a8da12e77df7726fb01e984ad7 [file] [log] [blame]
#include "libpldm/pdr.h"
#include "libpldmresponder/oem_handler.hpp"
#include <nlohmann/json.hpp>
#include <phosphor-logging/lg2.hpp>
#include <filesystem>
#include <fstream>
#include <map>
#include <string>
#include <vector>
PHOSPHOR_LOG2_USING;
namespace pldm
{
using Json = nlohmann::json;
namespace fs = std::filesystem;
using ObjectPath = fs::path;
using EntityName = std::string;
using EntityType = uint16_t;
using Entities = std::vector<pldm_entity_node*>;
using EntityAssociations = std::vector<Entities>;
using ObjectPathMaps = std::map<ObjectPath, pldm_entity_node*>;
using EntityMaps = std::map<EntityType, EntityName>;
namespace hostbmc
{
namespace utils
{
/** @brief Vector a entity name to pldm_entity from entity association tree
* @param[in] entityAssoc - Vector of associated pldm entities
* @param[in] entityTree - entity association tree
* @param[out] objPathMap - maps an object path to pldm_entity from the
* BMC's entity association tree
* @return
*/
void updateEntityAssociation(const EntityAssociations& entityAssoc,
pldm_entity_association_tree* entityTree,
ObjectPathMaps& objPathMap, EntityMaps entityMaps);
/** @brief Parsing entity to DBus string mapping from json file
*
* @param[in] filePath - JSON file path for parsing
*
* @return returns the entity to DBus string mapping object
*/
EntityMaps parseEntityMap(const fs::path& filePath);
} // namespace utils
} // namespace hostbmc
} // namespace pldm