From 296714a00a38431f55dc1b1243cc6e6a14f6e174 Mon Sep 17 00:00:00 2001 From: TSC21 Date: Wed, 11 Mar 2020 13:53:28 +0000 Subject: [PATCH] microRTPS: agent: simplify Subscriber code specialization --- msg/templates/urtps/Subscriber.cpp.em | 26 +++++------- msg/templates/urtps/Subscriber.h.em | 58 +++++++++------------------ 2 files changed, 30 insertions(+), 54 deletions(-) diff --git a/msg/templates/urtps/Subscriber.cpp.em b/msg/templates/urtps/Subscriber.cpp.em index 86f5e9b3d3..40178eb7f6 100644 --- a/msg/templates/urtps/Subscriber.cpp.em +++ b/msg/templates/urtps/Subscriber.cpp.em @@ -70,9 +70,15 @@ except AttributeError: #include "@(topic)_Subscriber.h" -@(topic)_Subscriber::@(topic)_Subscriber() : mp_participant(nullptr), mp_subscriber(nullptr) {} +@(topic)_Subscriber::@(topic)_Subscriber() + : mp_participant(nullptr), + mp_subscriber(nullptr) +{ } -@(topic)_Subscriber::~@(topic)_Subscriber() { Domain::removeParticipant(mp_participant);} +@(topic)_Subscriber::~@(topic)_Subscriber() +{ + Domain::removeParticipant(mp_participant); +} bool @(topic)_Subscriber::init(uint8_t topic_ID, std::condition_variable* t_send_queue_cv, std::mutex* t_send_queue_mutex, std::queue* t_send_queue) { @@ -89,7 +95,7 @@ bool @(topic)_Subscriber::init(uint8_t topic_ID, std::condition_variable* t_send @[else]@ PParam.rtps.builtin.discovery_config.leaseDuration = c_TimeInfinite; @[end if]@ - PParam.rtps.setName("@(topic)_subscriber"); //You can put the name you want + PParam.rtps.setName("@(topic)_subscriber"); mp_participant = Domain::createParticipant(PParam); if(mp_participant == nullptr) return false; @@ -199,19 +205,7 @@ bool @(topic)_Subscriber::hasMsg() return false; } -@[if fastrtps_version <= 1.7]@ -@[ if ros2_distro]@ -@(package)::msg::dds_::@(topic)_ @(topic)_Subscriber::getMsg() -@[ else]@ -@(topic)_ @(topic)_Subscriber::getMsg() -@[ end if]@ -@[else]@ -@[ if ros2_distro]@ -@(package)::msg::@(topic) @(topic)_Subscriber::getMsg() -@[ else]@ -@(topic) @(topic)_Subscriber::getMsg() -@[ end if]@ -@[end if]@ +@(topic)_msg_t @(topic)_Subscriber::getMsg() { return m_listener.msg; } diff --git a/msg/templates/urtps/Subscriber.h.em b/msg/templates/urtps/Subscriber.h.em index d308798e7d..b83a6f5729 100644 --- a/msg/templates/urtps/Subscriber.h.em +++ b/msg/templates/urtps/Subscriber.h.em @@ -81,27 +81,33 @@ except AttributeError: using namespace eprosima::fastrtps; using namespace eprosima::fastrtps::rtps; -class @(topic)_Subscriber -{ -public: - @(topic)_Subscriber(); - virtual ~@(topic)_Subscriber(); - bool init(uint8_t topic_ID, std::condition_variable* t_send_queue_cv, std::mutex* t_send_queue_mutex, std::queue* t_send_queue); - void run(); - bool hasMsg(); @[if fastrtps_version <= 1.7]@ @[ if ros2_distro]@ - @(package)::msg::dds_::@(topic)_ getMsg(); +using @(topic)_msg_t = @(package)::msg::dds_::@(topic)_; +using @(topic)_msg_datatype = @(package)::msg::dds_::@(topic)_PubSubType; @[ else]@ - @(topic)_ getMsg(); +using @(topic)_msg_t = @(topic)_; +using @(topic)_msg_datatype = @(topic)_PubSubType; @[ end if]@ @[else]@ @[ if ros2_distro]@ - @(package)::msg::@(topic) getMsg(); +using @(topic)_msg_t = @(package)::msg::@(topic); +using @(topic)_msg_datatype = @(package)::msg::@(topic)PubSubType; @[ else]@ - @(topic) getMsg(); +using @(topic)_msg_t = @(topic); +using @(topic)_msg_datatype = @(topic)PubSubType; @[ end if]@ @[end if]@ + +class @(topic)_Subscriber +{ +public: + @(topic)_Subscriber(); + virtual ~@(topic)_Subscriber(); + bool init(uint8_t topic_ID, std::condition_variable* t_send_queue_cv, std::mutex* t_send_queue_mutex, std::queue* t_send_queue); + void run(); + bool hasMsg(); + @(topic)_msg_t getMsg(); void unlockMsg(); private: @@ -118,19 +124,7 @@ private: SampleInfo_t m_info; int n_matched; int n_msg; -@[if fastrtps_version <= 1.7]@ -@[ if ros2_distro]@ - @(package)::msg::dds_::@(topic)_ msg; -@[ else]@ - @(topic)_ msg; -@[ end if]@ -@[else]@ -@[ if ros2_distro]@ - @(package)::msg::@(topic) msg; -@[ else]@ - @(topic) msg; -@[ end if]@ -@[end if]@ + @(topic)_msg_t msg; std::atomic_bool has_msg; uint8_t topic_ID; std::condition_variable* t_send_queue_cv; @@ -140,19 +134,7 @@ private: std::mutex has_msg_mutex; } m_listener; -@[if fastrtps_version <= 1.7]@ -@[ if ros2_distro]@ - @(package)::msg::dds_::@(topic)_PubSubType @(topic)DataType; -@[ else]@ - @(topic)_PubSubType @(topic)DataType; -@[ end if]@ -@[else]@ -@[ if ros2_distro]@ - @(package)::msg::@(topic)PubSubType @(topic)DataType; -@[ else]@ - @(topic)PubSubType @(topic)DataType; -@[ end if]@ -@[end if]@ + @(topic)_msg_datatype @(topic)DataType; }; #endif // _@(topic)__SUBSCRIBER_H_