NVMeSensorMain: Define extractSensorName()
Continue lifting code from the lambda to simplify its implementation.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ief4e55d8a9b10f2d95c876d4b1f6dd4bb667b87f
diff --git a/src/NVMeSensorMain.cpp b/src/NVMeSensorMain.cpp
index 96f42c9..ed932cf 100644
--- a/src/NVMeSensorMain.cpp
+++ b/src/NVMeSensorMain.cpp
@@ -49,6 +49,21 @@
return std::visit(VariantToIntVisitor(), findBus->second);
}
+static std::optional<std::string>
+ extractSensorName(const std::string& path,
+ const SensorBaseConfigMap& properties)
+{
+ auto findSensorName = properties.find("Name");
+ if (findSensorName == properties.end())
+ {
+ std::cerr << "could not determine configuration name for " << path
+ << "\n";
+ return std::nullopt;
+ }
+
+ return std::get<std::string>(findSensorName->second);
+}
+
static void handleSensorConfigurations(
boost::asio::io_service& io, sdbusplus::asio::object_server& objectServer,
std::shared_ptr<sdbusplus::asio::connection>& dbusConnection,
@@ -93,20 +108,18 @@
continue;
}
- auto findSensorName = baseConfiguration->second.find("Name");
- if (findSensorName == baseConfiguration->second.end())
+ std::optional<std::string> sensorName =
+ extractSensorName(sensor.first, baseConfiguration->second);
+ if (!sensorName)
{
- std::cerr << "could not determine configuration name for "
- << interfacePath << "\n";
continue;
}
- std::string sensorName = std::get<std::string>(findSensorName->second);
std::vector<thresholds::Threshold> sensorThresholds;
if (!parseThresholdsFromConfig(sensorData, sensorThresholds))
{
- std::cerr << "error populating thresholds for " << sensorName
+ std::cerr << "error populating thresholds for " << *sensorName
<< "\n";
}
@@ -145,7 +158,7 @@
}
std::shared_ptr<NVMeSensor> sensorPtr = std::make_shared<NVMeSensor>(
- objectServer, io, dbusConnection, sensorName,
+ objectServer, io, dbusConnection, *sensorName,
std::move(sensorThresholds), interfacePath, *busNumber);
context->addSensor(sensorPtr);