topology: schema rework: implementation

Implementation code for the schema change done in [1]. This change
enables entity-manager to consume the new schema and create associations
based on it.

Tested: next patch

References:
[1] https://gerrit.openbmc.org/c/openbmc/entity-manager/+/82817

Change-Id: If227949ab7bb216c2365241c307fe752b0a4cd93
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/src/entity_manager/topology.hpp b/src/entity_manager/topology.hpp
index cab4533..a55b995 100644
--- a/src/entity_manager/topology.hpp
+++ b/src/entity_manager/topology.hpp
@@ -25,6 +25,8 @@
     bool operator<(const AssocName& other) const;
 };
 
+extern const std::vector<AssocName> supportedAssocs;
+
 class Topology
 {
   public:
@@ -57,9 +59,12 @@
         BoardPathsView boardPaths, const Path& upstream, const Path& downstream,
         const AssocName& assocName);
 
+    void addConfiguredPort(const Path& path, const nlohmann::json& exposesItem);
     void addPort(const PortType& port, const Path& path,
                  const AssocName& assocName);
 
+    static std::optional<AssocName> getAssocByName(const std::string& name);
+
     // Maps the port name to the participating paths.
     // each path also has their role(s) in the association.
     // For example a PSU path which is part of "MB Upstream Port"