1 #pragma once
2 
3 #include <string>
4 
5 class AssociationInterface
6 {
7   public:
8     virtual ~AssociationInterface() = default;
9 
10     /** @brief Create an active association to the
11      *  newly active software image
12      *
13      * @param[in]  path - The path to create the association to.
14      */
15     virtual void createActiveAssociation(const std::string& path) = 0;
16 
17     /** @brief Add the functional association to the
18      *  new "running" PSU images
19      *
20      * @param[in]  path - The path to add the association to.
21      */
22     virtual void addFunctionalAssociation(const std::string& path) = 0;
23 
24     /** @brief Add the updateable association to the
25      *  "running" PSU software image
26      *
27      * @param[in]  path - The path to create the association.
28      */
29     virtual void addUpdateableAssociation(const std::string& path) = 0;
30 
31     /** @brief Remove the associations from the provided software image path
32      *
33      * @param[in]  path - The path to remove the association from.
34      */
35     virtual void removeAssociation(const std::string& path) = 0;
36 };
37