blob: 9d25b9bb2f9dbb24b8e659f571a4f7dcf64b393a [file] [log] [blame]
Lei YU7f2a2152019-09-16 16:50:18 +08001#pragma once
2
3#include <string>
4
5class AssociationInterface
6{
7 public:
George Liu66a54ad2024-08-23 13:53:39 +08008 AssociationInterface() = default;
9 AssociationInterface(const AssociationInterface&) = delete;
10 AssociationInterface& operator=(const AssociationInterface&) = delete;
11 AssociationInterface(AssociationInterface&&) = delete;
12 AssociationInterface& operator=(AssociationInterface&&) = delete;
13
Lei YU7f2a2152019-09-16 16:50:18 +080014 virtual ~AssociationInterface() = default;
15
16 /** @brief Create an active association to the
17 * newly active software image
18 *
19 * @param[in] path - The path to create the association to.
20 */
21 virtual void createActiveAssociation(const std::string& path) = 0;
22
23 /** @brief Add the functional association to the
24 * new "running" PSU images
25 *
26 * @param[in] path - The path to add the association to.
27 */
28 virtual void addFunctionalAssociation(const std::string& path) = 0;
29
Lei YUa8b966f2020-03-18 10:32:24 +080030 /** @brief Add the updateable association to the
31 * "running" PSU software image
32 *
33 * @param[in] path - The path to create the association.
34 */
35 virtual void addUpdateableAssociation(const std::string& path) = 0;
36
Lei YU7f2a2152019-09-16 16:50:18 +080037 /** @brief Remove the associations from the provided software image path
38 *
39 * @param[in] path - The path to remove the association from.
40 */
41 virtual void removeAssociation(const std::string& path) = 0;
42};