blob: 9d1dc43c8d39462a602afb6e1ed2d79fbe163bfa [file] [log] [blame]
Adriana Kobylak9f89e2e2018-05-30 13:16:20 -05001#pragma once
2
3#include <sdbusplus/bus.hpp>
4
5namespace phosphor
6{
7namespace software
8{
9namespace updater
10{
11
12/**
13 * @class Flash
14 * @brief Contains flash management functions.
15 * @details The software class that contains functions to interact
16 * with the flash.
17 */
18class Flash
19{
20 public:
Pavithra Barithaya48de55f2024-06-22 05:30:44 -050021 Flash() = default;
22 Flash(const Flash&) = delete;
23 Flash& operator=(const Flash&) = delete;
24 Flash(Flash&&) = default;
25 Flash& operator=(Flash&&) = delete;
26
Adriana Kobylak292159f2020-05-05 09:25:55 -050027 /* Destructor */
28 virtual ~Flash() = default;
29
Adriana Kobylak9f89e2e2018-05-30 13:16:20 -050030 /**
31 * @brief Writes the image file(s) to flash
32 */
33 virtual void flashWrite() = 0;
Adriana Kobylak3ce563a2018-06-06 16:41:15 -050034
35 /**
36 * @brief Takes action when the state of the activation service file changes
37 */
Patrick Williamsbf2bb2b2022-07-22 19:26:52 -050038 virtual void onStateChanges(sdbusplus::message_t& msg) = 0;
Adriana Kobylak9f89e2e2018-05-30 13:16:20 -050039};
40
41} // namespace updater
42} // namespace software
43} // namespace phosphor