blob: 17699ee5c67d59bd7396bc030633e4073d6f93ff [file] [log] [blame]
Archana Kakanic3664472025-02-04 05:36:37 -06001#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
10namespace pldm
11{
12namespace dbus
13{
14using ItemIntf = sdbusplus::server::object_t<
15 sdbusplus::xyz::openbmc_project::Inventory::server::Item>;
16
17class 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
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