| #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, |
| pldm::responder::oem_platform::Handler* oemPlatformHandler); |
| |
| /** @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 |