Fix graph manager node namespaces (backport #72) (#73)

* Fix graph manager node namespaces (#72)

(cherry picked from commit a623308505)

# Conflicts:
#	micro_ros_agent/src/agent/graph_manager/graph_manager.cpp

* Update graph_manager.cpp

Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
This commit is contained in:
mergify[bot]
2021-07-02 09:51:40 +02:00
committed by GitHub
co-authored by Pablo Garrido
parent a3fe4aa376
commit 9d3fbc63a0
@@ -309,8 +309,36 @@ void GraphManager::add_participant(
if (node_name != enclave) // Do not add root node
{
// Split node name in domain and node name
std::istringstream iss(node_name);
std::vector<std::string> result;
std::string token;
while(std::getline(iss, token, '/'))
{
result.push_back(token);
}
std::string isolated_node_name = "";
std::string isolated_namespace = "";
if (result.size() > 1)
{
isolated_namespace = result[0];
for (size_t i = 1; i < result.size(); i++)
{
isolated_node_name.append(result[i] + "/");
}
isolated_node_name.pop_back();
}
else
{
isolated_node_name = node_name;
isolated_namespace = "";
}
rmw_dds_common::msg::ParticipantEntitiesInfo info =
graphCache_.add_node(gid, node_name, enclave_);
graphCache_.add_node(gid, isolated_node_name, isolated_namespace);
ros_discovery_datawriter_->write(static_cast<void *>(&info));
}
}