in src/oomd/util/PluginArgParser.cpp [54:94]
SystemMaybe<Unit> PluginArgParser::parse(const Engine::PluginArgs& args) {
for (const auto& argName : requiredArgs_) {
if (args.find(argName) == args.end()) {
OLOG << "Required arg \"" << argName << "\" missing in plugin \""
<< pluginName_ << "\"";
return SYSTEM_ERROR(
EINVAL,
"Required arg \"",
argName,
"\" missing in plugin \"",
pluginName_,
"\"");
}
}
for (const auto& entry : args) {
if (argValueFillingFuncs_.find(entry.first) !=
argValueFillingFuncs_.end()) {
auto funcRes = argValueFillingFuncs_.at(entry.first)(entry.second);
if (!funcRes) {
return SYSTEM_ERROR(
EINVAL,
"Failed parsing arg for plugin \"",
pluginName_,
"\", error: ",
funcRes.error().what());
}
} else {
OLOG << "Unknown arg \"" << entry.first << "\" in plugin \""
<< pluginName_ << "\"";
return SYSTEM_ERROR(
EINVAL,
"Unknown arg \"",
entry.first,
"\" in plugin \"",
pluginName_,
"\"");
}
}
return noSystemError();
}