Convert variant usage to std interface
This is just a refactoring to use the c++17 std::variant interfaces
instead of the mapbox::variant specific ones. We should be able to use
mapbox::variant and std::variant interchangeably now.
Tested:
Built against sdbusplus with mapbox::variant and sbusplus using
std::variant. Both variant compile and test out.
Change-Id: I6fbaad3d12dd34968db6a10f3d74a65e07d0f0cc
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/chassishandler.cpp b/chassishandler.cpp
index d75b3b2..a58eee0 100644
--- a/chassishandler.cpp
+++ b/chassishandler.cpp
@@ -23,6 +23,7 @@
#include <phosphor-logging/elog-errors.hpp>
#include <phosphor-logging/log.hpp>
#include <sdbusplus/bus.hpp>
+#include <sdbusplus/message/types.hpp>
#include <sdbusplus/server/object.hpp>
#include <sdbusplus/timer.hpp>
#include <sstream>
@@ -138,6 +139,8 @@
using namespace phosphor::logging;
using namespace sdbusplus::xyz::openbmc_project::Common::Error;
using namespace sdbusplus::xyz::openbmc_project::Control::Boot::server;
+namespace variant_ns = sdbusplus::message::variant_ns;
+
namespace chassis
{
namespace internal
@@ -349,19 +352,19 @@
macObjectInfo.first, MAC_INTERFACE,
"MACAddress");
- auto ipAddress = properties["Address"].get<std::string>();
+ auto ipAddress = variant_ns::get<std::string>(properties["Address"]);
- auto gateway = properties["Gateway"].get<std::string>();
+ auto gateway = variant_ns::get<std::string>(properties["Gateway"]);
- auto prefix = properties["PrefixLength"].get<uint8_t>();
+ auto prefix = variant_ns::get<uint8_t>(properties["PrefixLength"]);
uint8_t isStatic =
- (properties["Origin"].get<std::string>() ==
+ (variant_ns::get<std::string>(properties["Origin"]) ==
"xyz.openbmc_project.Network.IP.AddressOrigin.Static")
? 1
: 0;
- auto MACAddress = variant.get<std::string>();
+ auto MACAddress = variant_ns::get<std::string>(variant);
// it is expected here that we should get the valid data
// but we may also get the default values.
@@ -399,10 +402,11 @@
std::memcpy(respptr->data + ADDRTYPE_OFFSET, &isStatic,
sizeof(isStatic));
- uint8_t addressFamily = (properties["Type"].get<std::string>() ==
- "xyz.openbmc_project.Network.IP.Protocol.IPv4")
- ? AF_INET
- : AF_INET6;
+ uint8_t addressFamily =
+ (variant_ns::get<std::string>(properties["Type"]) ==
+ "xyz.openbmc_project.Network.IP.Protocol.IPv4")
+ ? AF_INET
+ : AF_INET6;
addrSize = (addressFamily == AF_INET)
? ipmi::network::IPV4_ADDRESS_SIZE_BYTE
@@ -636,7 +640,7 @@
ipmi::getDbusProperty(bus, service, chassisStateObj.first,
chassisPOHStateIntf, pOHCounterProperty);
- return propValue.get<uint32_t>();
+ return variant_ns::get<uint32_t>(propValue);
}
ipmi_ret_t ipmi_chassis_wildcard(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
@@ -818,8 +822,8 @@
}
sdbusplus::message::variant<std::string> result;
resp.read(result);
- auto powerRestore =
- RestorePolicy::convertPolicyFromString(result.get<std::string>());
+ auto powerRestore = RestorePolicy::convertPolicyFromString(
+ variant_ns::get<std::string>(result));
*data_len = 4;
@@ -1365,8 +1369,8 @@
}
sdbusplus::message::variant<std::string> result;
reply.read(result);
- auto bootSource =
- Source::convertSourcesFromString(result.get<std::string>());
+ auto bootSource = Source::convertSourcesFromString(
+ variant_ns::get<std::string>(result));
bootSetting = settings::boot::setting(objects, bootModeIntf);
const auto& bootModeSetting = std::get<settings::Path>(bootSetting);
@@ -1383,8 +1387,8 @@
return IPMI_CC_UNSPECIFIED_ERROR;
}
reply.read(result);
- auto bootMode =
- Mode::convertModesFromString(result.get<std::string>());
+ auto bootMode = Mode::convertModesFromString(
+ variant_ns::get<std::string>(result));
bootOption = sourceDbusToIpmi.at(bootSource);
if ((Mode::Modes::Regular == bootMode) &&