xref: /openbmc/pldm/host-bmc/dbus/inventory_item.hpp (revision c366447aecf9f76638430c484c94178cc1d90464)
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/Inventory/Item/server.hpp>
7 
8 #include <string>
9 
10 namespace pldm
11 {
12 namespace dbus
13 {
14 using ItemIntf = sdbusplus::server::object_t<
15     sdbusplus::xyz::openbmc_project::Inventory::server::Item>;
16 
17 class InventoryItem : public ItemIntf
18 {
19   public:
20     InventoryItem() = delete;
21     ~InventoryItem() = default;
22     InventoryItem(const InventoryItem&) = delete;
23     InventoryItem& operator=(const InventoryItem&) = delete;
24     InventoryItem(InventoryItem&&) = delete;
25     InventoryItem& operator=(InventoryItem&&) = delete;
26 
InventoryItem(sdbusplus::bus_t & bus,const std::string & objPath)27     InventoryItem(sdbusplus::bus_t& bus, const std::string& objPath) :
28         ItemIntf(bus, objPath.c_str()), path(objPath)
29     {}
30 
31     /** Get value of PrettyName */
32     std::string prettyName() const override;
33 
34     /** Set value of PrettyName */
35     std::string prettyName(std::string value) override;
36 
37     /** Get value of Present */
38     bool present() const override;
39 
40     /** Set value of Present */
41     bool present(bool value) override;
42 
43   private:
44     std::string path;
45 };
46 
47 } // namespace dbus
48 } // namespace pldm
49