Move common types into a common header

Upcoming commits will have code that references some of these
types in more files so it makes sense to have them in a common
place.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I92adbefdd4bcfdb5d8d7e30b7fdf0fa03c739d2a
diff --git a/src/associations.hpp b/src/associations.hpp
index 91a9fcd..73fc2e5 100644
--- a/src/associations.hpp
+++ b/src/associations.hpp
@@ -1,55 +1,10 @@
 #pragma once
 
-#include <boost/container/flat_map.hpp>
-#include <boost/container/flat_set.hpp>
-#include <memory>
-#include <sdbusplus/asio/object_server.hpp>
-#include <string>
-#include <tuple>
-#include <vector>
+#include "types.hpp"
 
 constexpr const char* XYZ_ASSOCIATION_INTERFACE =
     "xyz.openbmc_project.Association";
 
-//  Associations and some metadata are stored in associationInterfaces.
-//  The fields are:
-//   * ifacePos - holds the D-Bus interface object
-//   * endpointsPos - holds the endpoints array that shadows the property
-static constexpr auto ifacePos = 0;
-static constexpr auto endpointsPos = 1;
-using Endpoints = std::vector<std::string>;
-
-// map[interface path: tuple[dbus_interface,vector[endpoint paths]]]
-using AssociationInterfaces = boost::container::flat_map<
-    std::string,
-    std::tuple<std::shared_ptr<sdbusplus::asio::dbus_interface>, Endpoints>>;
-
-// The associationOwners map contains information about creators of
-// associations, so that when a org.openbmc.Association interface is
-// removed or its 'associations' property is changed, the mapper owned
-// association objects can be correctly handled.  It is a map of the
-// object path of the org.openbmc.Association owner to a map of the
-// service the path is owned by, to a map of the association objects to
-// their endpoint paths:
-// map[ownerPath : map[service : map[assocPath : [endpoint paths]]]
-// For example:
-// [/logging/entry/1 :
-//   [xyz.openbmc_project.Logging :
-//     [/logging/entry/1/callout : [/system/cpu0],
-//      /system/cpu0/fault : [/logging/entry/1]]]]
-
-using AssociationPaths =
-    boost::container::flat_map<std::string,
-                               boost::container::flat_set<std::string>>;
-
-using AssociationOwnersType = boost::container::flat_map<
-    std::string, boost::container::flat_map<std::string, AssociationPaths>>;
-
-// Store the contents of the associations property on the interface
-// For example:
-// ["inventory", "activation", "/xyz/openbmc_project/inventory/system/chassis"]
-using Association = std::tuple<std::string, std::string, std::string>;
-
 /** @brief Remove input association
  *
  * @param[in] sourcePath          - Path of the object that contains the