Improve list_parameters logic
This commit is contained in:
parent
1b26cd2d3d
commit
e39af181d0
1 changed files with 10 additions and 6 deletions
|
@ -368,7 +368,9 @@ Node::list_parameters(
|
||||||
// TODO(esteve): define parameter separator, use "." for now
|
// TODO(esteve): define parameter separator, use "." for now
|
||||||
for (auto & kv : parameters_) {
|
for (auto & kv : parameters_) {
|
||||||
if (std::any_of(prefixes.cbegin(), prefixes.cend(), [&kv, &depth](const std::string & prefix) {
|
if (std::any_of(prefixes.cbegin(), prefixes.cend(), [&kv, &depth](const std::string & prefix) {
|
||||||
if (kv.first.find(prefix + ".") == 0) {
|
if (kv.first == prefix) {
|
||||||
|
return true;
|
||||||
|
} else if (kv.first.find(prefix + ".") == 0) {
|
||||||
size_t length = prefix.length();
|
size_t length = prefix.length();
|
||||||
std::string substr = kv.first.substr(length);
|
std::string substr = kv.first.substr(length);
|
||||||
// Cast as unsigned integer to avoid warning
|
// Cast as unsigned integer to avoid warning
|
||||||
|
@ -379,6 +381,7 @@ Node::list_parameters(
|
||||||
{
|
{
|
||||||
result.names.push_back(kv.first);
|
result.names.push_back(kv.first);
|
||||||
size_t last_separator = kv.first.find_last_of('.');
|
size_t last_separator = kv.first.find_last_of('.');
|
||||||
|
if (std::string::npos != last_separator) {
|
||||||
std::string prefix = kv.first.substr(0, last_separator);
|
std::string prefix = kv.first.substr(0, last_separator);
|
||||||
if (std::find(result.prefixes.cbegin(), result.prefixes.cend(),
|
if (std::find(result.prefixes.cbegin(), result.prefixes.cend(),
|
||||||
prefix) == result.prefixes.cend())
|
prefix) == result.prefixes.cend())
|
||||||
|
@ -387,6 +390,7 @@ Node::list_parameters(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif /* RCLCPP_RCLCPP_NODE_IMPL_HPP_ */
|
#endif /* RCLCPP_RCLCPP_NODE_IMPL_HPP_ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue