#pragma once #include #include #include #include #include namespace pldm { namespace dbus { using ItemSlot = sdbusplus::server::object_t< sdbusplus::xyz::openbmc_project::Inventory::Item::server::PCIeSlot>; /** * @class PCIeSlot * @brief PCIeSlot support includes the slot properties and functions */ class PCIeSlot : public ItemSlot { public: PCIeSlot() = delete; ~PCIeSlot() = default; PCIeSlot(const PCIeSlot&) = delete; PCIeSlot& operator=(const PCIeSlot&) = delete; PCIeSlot(sdbusplus::bus_t& bus, const std::string& objPath) : ItemSlot(bus, objPath.c_str()) {} /** Get value of Generation */ Generations generation() const override; /** Set value of Generation */ Generations generation(Generations value) override; /** Get value of Lanes */ size_t lanes() const override; /** Set value of Lanes */ size_t lanes(size_t value) override; /** Get value of SlotType */ SlotTypes slotType() const override; /** Set value of SlotType */ SlotTypes slotType(SlotTypes value) override; /** Get value of HotPluggable */ bool hotPluggable() const override; /** Set value of HotPluggable */ bool hotPluggable(bool value) override; }; } // namespace dbus } // namespace pldm