diff options
author | William A. Kennington III <wak@google.com> | 2018-10-12 17:18:14 -0700 |
---|---|---|
committer | William A. Kennington III <wak@google.com> | 2018-10-18 15:08:55 -0700 |
commit | 4c0080287f2bb19ecfbe5cdd4a334f8769e7d0cd (patch) | |
tree | f2edadbb00b55c212c280c90f0cb35d96702bf4e /sensordatahandler.cpp | |
parent | 1181af741589db873676f177ed85d6bc04884aa1 (diff) | |
download | phosphor-host-ipmid-4c0080287f2bb19ecfbe5cdd4a334f8769e7d0cd.tar.gz phosphor-host-ipmid-4c0080287f2bb19ecfbe5cdd4a334f8769e7d0cd.zip |
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>
Diffstat (limited to 'sensordatahandler.cpp')
-rw-r--r-- | sensordatahandler.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp index c973f2e..4f552a3 100644 --- a/sensordatahandler.cpp +++ b/sensordatahandler.cpp @@ -5,8 +5,10 @@ #include "utils.hpp" #include <bitset> +#include <optional> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> #if __has_include(<filesystem>) @@ -27,6 +29,8 @@ namespace ipmi namespace sensor { +namespace variant_ns = sdbusplus::message::variant_ns; + using namespace phosphor::logging; using InternalFailure = sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; @@ -260,7 +264,7 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) for (const auto& property : interface->second) { - Value tmp{sdbusplus::message::variant_ns::no_init()}; + std::optional<Value> tmp; for (const auto& value : std::get<OffsetValueMap>(property.second)) { if (bothSet.size() <= value.first || !bothSet.test(value.first)) @@ -281,14 +285,14 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) } } - if (tmp.valid()) + if (tmp) { auto msg = makeDbusMsg("org.freedesktop.DBus.Properties", sensorInfo.sensorPath, "Set", sensorInfo.sensorInterface); msg.append(interface->first); msg.append(property.first); - msg.append(tmp); + msg.append(*tmp); auto rc = updateToDbus(msg); if (rc) @@ -348,7 +352,8 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { return IPMI_CC_OK; } - result = result && value.second.assert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.assert); valid = true; } else if (deassertionSet.test(value.first)) @@ -358,7 +363,8 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { return IPMI_CC_OK; } - result = result && value.second.deassert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.deassert); valid = true; } } @@ -367,11 +373,13 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { if (assertionSet.test(value.first)) { - result = result && value.second.assert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.assert); } else if (deassertionSet.test(value.first)) { - result = result && value.second.deassert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.deassert); } } if (valid) |