use sdbusplus unpack syntax
Rather than defining a variable and then reading it from a message,
sdbusplus also supports directly unpack-ing from the message. Use
this syntax instead as it is more efficient and succinct.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I23902026dee367a8cbf0c2725725c4ed3ca4d2bb
diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
index da06041..29f81c9 100644
--- a/app/watchdog_service.cpp
+++ b/app/watchdog_service.cpp
@@ -117,8 +117,8 @@
try
{
auto response = bus.call(request);
- std::variant<T> value;
- response.read(value);
+ auto value = response.unpack<std::variant<T>>();
+
return std::get<T>(value);
}
catch (const std::exception& e)
diff --git a/libipmid/utils.cpp b/libipmid/utils.cpp
index cc89844..02d6758 100644
--- a/libipmid/utils.cpp
+++ b/libipmid/utils.cpp
@@ -210,8 +210,9 @@
auto mapperResponseMsg = bus.call(mapperCall);
- std::map<std::string, std::vector<std::string>> mapperResponse;
- mapperResponseMsg.read(mapperResponse);
+ auto mapperResponse =
+ mapperResponseMsg
+ .unpack<std::map<std::string, std::vector<std::string>>>();
if (mapperResponse.begin() == mapperResponse.end())
{
@@ -230,8 +231,7 @@
mapperCall.append(subtreePath, depth, interfaces);
auto mapperReply = bus.call(mapperCall);
- ObjectTree objectTree;
- mapperReply.read(objectTree);
+ auto objectTree = mapperReply.unpack<ObjectTree>();
return objectTree;
}
diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index 7c4c5ab..cb6942f 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -179,10 +179,10 @@
try
{
// This is signal callback
- std::string interfaceName;
- msg.read(interfaceName);
- ipmi::PropertyMap props;
- msg.read(props);
+ auto interfaceName = msg.unpack<std::string>();
+
+ auto props = msg.unpack<ipmi::PropertyMap>();
+
s.second.getFunc(s.first, s.second, props);
}
catch (const std::exception& e)
diff --git a/transport/serialbridge/serialcmd.cpp b/transport/serialbridge/serialcmd.cpp
index c6426fb..94535e5 100644
--- a/transport/serialbridge/serialcmd.cpp
+++ b/transport/serialbridge/serialcmd.cpp
@@ -163,9 +163,8 @@
throw sdbusplus::exception::SdBusError(&error, "ipmid response");
}
- std::tuple<uint8_t, uint8_t, uint8_t, uint8_t, std::vector<uint8_t>>
- ret;
- m.read(ret);
+ auto ret = m.unpack<std::tuple<uint8_t, uint8_t, uint8_t, uint8_t,
+ std::vector<uint8_t>>>();
const auto& [netFn, lun, cmd, cc, data] = ret;
diff --git a/transporthandler.cpp b/transporthandler.cpp
index d99c754..7bcc696 100644
--- a/transporthandler.cpp
+++ b/transporthandler.cpp
@@ -560,8 +560,8 @@
INTF_VLAN_CREATE, "VLAN");
req.append(params.ifname, static_cast<uint32_t>(vlan));
auto reply = bus.call(req);
- sdbusplus::message::object_path newPath;
- reply.read(newPath);
+ auto newPath = reply.unpack<sdbusplus::message::object_path>();
+
params.logicalPath = std::move(newPath);
}