Activation: create associations

Create activation, functional, activate associations during PSU update.

Tested: With dummy psu update service, verify the assocations are
        created when the PSU update is completed, and not created
        when PSU update fails.

Signed-off-by: Lei YU <mine260309@gmail.com>
Change-Id: I3d457e65b55066b93f7fc9a3311093dcec05d020
diff --git a/src/association_interface.hpp b/src/association_interface.hpp
new file mode 100644
index 0000000..e3d653c
--- /dev/null
+++ b/src/association_interface.hpp
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <string>
+
+class AssociationInterface
+{
+  public:
+    virtual ~AssociationInterface() = default;
+
+    /** @brief Create an active association to the
+     *  newly active software image
+     *
+     * @param[in]  path - The path to create the association to.
+     */
+    virtual void createActiveAssociation(const std::string& path) = 0;
+
+    /** @brief Add the functional association to the
+     *  new "running" PSU images
+     *
+     * @param[in]  path - The path to add the association to.
+     */
+    virtual void addFunctionalAssociation(const std::string& path) = 0;
+
+    /** @brief Remove the associations from the provided software image path
+     *
+     * @param[in]  path - The path to remove the association from.
+     */
+    virtual void removeAssociation(const std::string& path) = 0;
+};