unit-test: Move checkAssociationEndpointRemoves
Make it easier to unit test and continue reduction of main.cpp
Change-Id: Id4f4c4fc1e3928f1b600555c6dbe05f651fffce5
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/src/associations.hpp b/src/associations.hpp
index d926006..7fa15ab 100644
--- a/src/associations.hpp
+++ b/src/associations.hpp
@@ -76,3 +76,29 @@
sdbusplus::asio::object_server& objectServer, const std::string& assocPath,
const boost::container::flat_set<std::string>& endpointsToRemove,
AssociationInterfaces& assocInterfaces);
+
+/** @brief Check and remove any changed associations
+ *
+ * Based on the latest values of the org.openbmc.Associations.associations
+ * property, passed in via the newAssociations param, check if any of the
+ * paths in the xyz.openbmc_project.Association.endpoints D-Bus property
+ * for that association need to be removed. If the last path is removed
+ * from the endpoints property, remove that whole association object from
+ * D-Bus.
+ *
+ * @param[in] sourcePath - Path of the object that contains the
+ * org.openbmc.Associations
+ * @param[in] owner - The Dbus service having it's associatons
+ * changed
+ * @param[in] newAssociations - New associations to look at for change
+ * @param[in,out] objectServer - sdbus system object
+ * @param[in,out] assocOwners - Owners of associations
+ * @param[in,out] assocInterfaces - Associations endpoints
+ *
+ * @return Void, objectServer and assocOwners updated if needed
+ */
+void checkAssociationEndpointRemoves(
+ const std::string& sourcePath, const std::string& owner,
+ const AssociationPaths& newAssociations,
+ sdbusplus::asio::object_server& objectServer,
+ AssociationOwnersType& assocOwners, AssociationInterfaces& assocInterfaces);