xref: /openbmc/pldm/host-bmc/dbus/availability.hpp (revision f935537d2433b9c431c3af5a2bcb2ea58a3e321d)
1 #pragma once
2 
3 #include <sdbusplus/bus.hpp>
4 #include <sdbusplus/server.hpp>
5 #include <sdbusplus/server/object.hpp>
6 #include <xyz/openbmc_project/State/Decorator/Availability/server.hpp>
7 
8 #include <string>
9 
10 namespace pldm
11 {
12 namespace dbus
13 {
14 using AvailabilityIntf = sdbusplus::server::object_t<
15     sdbusplus::xyz::openbmc_project::State::Decorator::server::Availability>;
16 
17 class Availability : public AvailabilityIntf
18 {
19   public:
20     Availability() = delete;
21     ~Availability() = default;
22     Availability(const Availability&) = delete;
23     Availability& operator=(const Availability&) = delete;
24     Availability(Availability&&) = delete;
25     Availability& operator=(Availability&&) = delete;
26 
Availability(sdbusplus::bus_t & bus,const std::string & objPath)27     Availability(sdbusplus::bus_t& bus, const std::string& objPath) :
28         AvailabilityIntf(bus, objPath.c_str()), path(objPath)
29     {}
30 
31     /** Get value of Available */
32     bool available() const override;
33 
34     /** Set value of Available */
35     bool available(bool value) override;
36 
37   private:
38     std::string path;
39 };
40 
41 } // namespace dbus
42 } // namespace pldm
43