#include "custom_dbus.hpp" namespace pldm { namespace dbus { void CustomDBus::setLocationCode(const std::string& path, std::string value) { if (!location.contains(path)) { location.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path.c_str())); } location.at(path)->locationCode(value); } std::optional CustomDBus::getLocationCode(const std::string& path) const { if (location.contains(path)) { return location.at(path)->locationCode(); } return std::nullopt; } void CustomDBus::implementCpuCoreInterface(const std::string& path) { if (!cpuCore.contains(path)) { cpuCore.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path)); } } void CustomDBus::setMicroCode(const std::string& path, uint32_t value) { if (!cpuCore.contains(path)) { cpuCore.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path)); } cpuCore.at(path)->microcode(value); } std::optional CustomDBus::getMicroCode(const std::string& path) const { if (cpuCore.contains(path)) { return cpuCore.at(path)->microcode(); } return std::nullopt; } void CustomDBus::implementPCIeSlotInterface(const std::string& path) { if (!pcieSlot.contains(path)) { pcieSlot.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path)); } } void CustomDBus::setSlotType(const std::string& path, const std::string& slotType) { auto typeOfSlot = pldm::dbus::PCIeSlot::convertSlotTypesFromString(slotType); if (pcieSlot.contains(path)) { pcieSlot.at(path)->slotType(typeOfSlot); } } void CustomDBus::implementPCIeDeviceInterface(const std::string& path) { if (!pcieDevice.contains(path)) { pcieDevice.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path)); } } void CustomDBus::setPCIeDeviceProps(const std::string& path, size_t lanesInUse, const std::string& value) { Generations generationsInUse = pldm::dbus::PCIeSlot::convertGenerationsFromString(value); if (pcieDevice.contains(path)) { pcieDevice.at(path)->lanesInUse(lanesInUse); pcieDevice.at(path)->generationInUse(generationsInUse); } } void CustomDBus::implementCableInterface(const std::string& path) { if (!cable.contains(path)) { cable.emplace(path, std::make_unique( pldm::utils::DBusHandler::getBus(), path)); } } void CustomDBus::setCableAttributes(const std::string& path, double length, const std::string& cableDescription) { if (cable.contains(path)) { cable.at(path)->length(length); cable.at(path)->cableTypeDescription(cableDescription); } } } // namespace dbus } // namespace pldm