From 0bd908fb7e2c49b8048a55a1d7e5cd5cef7552ad Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 2 Jul 2021 09:44:20 +0200 Subject: [PATCH 1/2] Fix graph manager node namespaces (#72) (cherry picked from commit a62330850541b80fdfb22fba40508eec7e1f3934) # Conflicts: # micro_ros_agent/src/agent/graph_manager/graph_manager.cpp --- .../src/agent/graph_manager/graph_manager.cpp | 79 ++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index 8993576..a481a34 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -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 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(&info)); } } @@ -597,6 +625,55 @@ void GraphManager::ParticipantListener::on_participant_discovery( } } +<<<<<<< HEAD +======= +static eprosima::fastdds::dds::DataWriterQos writer_qos_conversion( + const eprosima::fastdds::dds::WriterQos& writer_qos) +{ + eprosima::fastdds::dds::DataWriterQos datawriter_qos; + datawriter_qos.durability(writer_qos.m_durability); + datawriter_qos.durability_service(writer_qos.m_durabilityService); + datawriter_qos.deadline(writer_qos.m_deadline); + datawriter_qos.latency_budget(writer_qos.m_latencyBudget); + datawriter_qos.liveliness(writer_qos.m_liveliness); + datawriter_qos.reliability(writer_qos.m_reliability); + datawriter_qos.destination_order(writer_qos.m_destinationOrder); + datawriter_qos.lifespan(writer_qos.m_lifespan); + datawriter_qos.user_data(writer_qos.m_userData); + datawriter_qos.ownership(writer_qos.m_ownership); + datawriter_qos.ownership_strength(writer_qos.m_ownershipStrength); + datawriter_qos.publish_mode(writer_qos.m_publishMode); + datawriter_qos.representation(writer_qos.representation); + datawriter_qos.data_sharing(writer_qos.data_sharing); + + return datawriter_qos; +} + +static eprosima::fastdds::dds::DataReaderQos reader_qos_conversion( + const eprosima::fastdds::dds::ReaderQos& reader_qos) +{ + eprosima::fastdds::dds::DataReaderQos datareader_qos; + + datareader_qos.durability(reader_qos.m_durability); + datareader_qos.deadline(reader_qos.m_deadline); + datareader_qos.latency_budget(reader_qos.m_latencyBudget); + datareader_qos.liveliness(reader_qos.m_liveliness); + datareader_qos.reliability(reader_qos.m_reliability); + datareader_qos.destination_order(reader_qos.m_destinationOrder); + datareader_qos.user_data(reader_qos.m_userData); + datareader_qos.ownership(reader_qos.m_ownership); + datareader_qos.time_based_filter(reader_qos.m_timeBasedFilter); + datareader_qos.lifespan(reader_qos.m_lifespan); + datareader_qos.durability_service(reader_qos.m_durabilityService); + eprosima::fastdds::dds::TypeConsistencyQos consistency; + consistency.type_consistency = reader_qos.type_consistency; + datareader_qos.type_consistency(consistency); + datareader_qos.data_sharing(reader_qos.data_sharing); + + return datareader_qos; +} + +>>>>>>> a623308 (Fix graph manager node namespaces (#72)) template <> void GraphManager::ParticipantListener::process_discovery_info( const eprosima::fastrtps::rtps::ReaderDiscoveryInfo& reader_info) From 63d8351328ac1cfbde46b6d7366160f79e64ca15 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 2 Jul 2021 09:47:15 +0200 Subject: [PATCH 2/2] Update graph_manager.cpp --- .../src/agent/graph_manager/graph_manager.cpp | 51 +------------------ 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index a481a34..0600ddb 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -625,55 +625,6 @@ void GraphManager::ParticipantListener::on_participant_discovery( } } -<<<<<<< HEAD -======= -static eprosima::fastdds::dds::DataWriterQos writer_qos_conversion( - const eprosima::fastdds::dds::WriterQos& writer_qos) -{ - eprosima::fastdds::dds::DataWriterQos datawriter_qos; - datawriter_qos.durability(writer_qos.m_durability); - datawriter_qos.durability_service(writer_qos.m_durabilityService); - datawriter_qos.deadline(writer_qos.m_deadline); - datawriter_qos.latency_budget(writer_qos.m_latencyBudget); - datawriter_qos.liveliness(writer_qos.m_liveliness); - datawriter_qos.reliability(writer_qos.m_reliability); - datawriter_qos.destination_order(writer_qos.m_destinationOrder); - datawriter_qos.lifespan(writer_qos.m_lifespan); - datawriter_qos.user_data(writer_qos.m_userData); - datawriter_qos.ownership(writer_qos.m_ownership); - datawriter_qos.ownership_strength(writer_qos.m_ownershipStrength); - datawriter_qos.publish_mode(writer_qos.m_publishMode); - datawriter_qos.representation(writer_qos.representation); - datawriter_qos.data_sharing(writer_qos.data_sharing); - - return datawriter_qos; -} - -static eprosima::fastdds::dds::DataReaderQos reader_qos_conversion( - const eprosima::fastdds::dds::ReaderQos& reader_qos) -{ - eprosima::fastdds::dds::DataReaderQos datareader_qos; - - datareader_qos.durability(reader_qos.m_durability); - datareader_qos.deadline(reader_qos.m_deadline); - datareader_qos.latency_budget(reader_qos.m_latencyBudget); - datareader_qos.liveliness(reader_qos.m_liveliness); - datareader_qos.reliability(reader_qos.m_reliability); - datareader_qos.destination_order(reader_qos.m_destinationOrder); - datareader_qos.user_data(reader_qos.m_userData); - datareader_qos.ownership(reader_qos.m_ownership); - datareader_qos.time_based_filter(reader_qos.m_timeBasedFilter); - datareader_qos.lifespan(reader_qos.m_lifespan); - datareader_qos.durability_service(reader_qos.m_durabilityService); - eprosima::fastdds::dds::TypeConsistencyQos consistency; - consistency.type_consistency = reader_qos.type_consistency; - datareader_qos.type_consistency(consistency); - datareader_qos.data_sharing(reader_qos.data_sharing); - - return datareader_qos; -} - ->>>>>>> a623308 (Fix graph manager node namespaces (#72)) template <> void GraphManager::ParticipantListener::process_discovery_info( const eprosima::fastrtps::rtps::ReaderDiscoveryInfo& reader_info) @@ -761,4 +712,4 @@ void GraphManager::DatareaderListener::on_data_available( } // namespace agent } // namespace uros -#endif // _UROS_AGENT_GRAPH_MANAGER_CPP \ No newline at end of file +#endif // _UROS_AGENT_GRAPH_MANAGER_CPP