diff --git a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp index 63fc5e5..d031ffe 100644 --- a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp +++ b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp @@ -288,7 +288,10 @@ private: eprosima::fastdds::dds::DataWriterQos datawriter_qos_; + eprosima::fastdds::dds::DataWriterQos datawriter_qos_; + rmw_dds_common::GraphCache graphCache_; + ParticipantListener participant_listener_; DatareaderListener datareader_listener_; diff --git a/micro_ros_agent/src/agent/Agent.cpp b/micro_ros_agent/src/agent/Agent.cpp index 355c797..1efe944 100644 --- a/micro_ros_agent/src/agent/Agent.cpp +++ b/micro_ros_agent/src/agent/Agent.cpp @@ -197,7 +197,8 @@ void Agent::stop() graph_manager::GraphManager* Agent::find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t domain_id) { - auto it = graph_manager_map_.find(domain_id); + +auto it = graph_manager_map_.find(domain_id); if (it != graph_manager_map_.end()) { return &it->second; 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 e8c87c2..c1eac93 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -34,6 +34,7 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) , microros_graph_info_typesupport_() { eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->load_profiles(); + participant_info_typesupport_ = (eprosima::fastdds::dds::TypeSupport) new graph_manager::ParticipantEntitiesInfoTypeSupport(); microros_graph_info_typesupport_ = (eprosima::fastdds::dds::TypeSupport) new graph_manager::MicrorosGraphInfoTypeSupport(); @@ -54,6 +55,7 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) eprosima::fastrtps::rtps::PREALLOCATED_WITH_REALLOC_MEMORY_MODE; eprosima::fastdds::dds::StatusMask par_mask = eprosima::fastdds::dds::StatusMask::none(); + participant_ = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()-> create_participant(domain_id_, participant_qos, &participant_listener_, par_mask); @@ -97,6 +99,7 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) eprosima::fastdds::dds::DataWriterQos ros_to_microros_datawriter_qos_ = datawriter_qos_; ros_to_microros_datawriter_qos_.history().kind = eprosima::fastdds::dds::HistoryQosPolicyKind::KEEP_ALL_HISTORY_QOS; + ros_to_microros_graph_datawriter_ = publisher_->create_datawriter(ros_to_microros_graph_topic_, ros_to_microros_datawriter_qos_);