blob: cfe3a42e236074fccba1e0d82ebe895a532471c8 [file] [log] [blame]
#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<LocationIntf>(
pldm::utils::DBusHandler::getBus(), path.c_str()));
}
location.at(path)->locationCode(value);
}
std::optional<std::string>
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<CPUCore>(
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<CPUCore>(
pldm::utils::DBusHandler::getBus(), path));
}
cpuCore.at(path)->microcode(value);
}
std::optional<uint32_t> 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<PCIeSlot>(
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<PCIeDevice>(
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);
}
}
} // namespace dbus
} // namespace pldm