16 #ifndef RMW_FASTRTPS_SHARED_CPP__QOS_HPP_
17 #define RMW_FASTRTPS_SHARED_CPP__QOS_HPP_
19 #include <fastdds/dds/core/policy/QosPolicies.hpp>
20 #include <fastdds/dds/publisher/qos/DataWriterQos.hpp>
21 #include <fastdds/dds/subscriber/qos/DataReaderQos.hpp>
22 #include <fastdds/dds/topic/qos/TopicQos.hpp>
24 #include <fastrtps/qos/QosPolicies.h>
38 eprosima::fastdds::dds::DataReaderQos & reader_qos);
44 eprosima::fastdds::dds::DataWriterQos & writer_qos);
50 eprosima::fastdds::dds::TopicQos & topic_qos);
62 template<
typename DDSQoSPolicyT>
65 const DDSQoSPolicyT & dds_qos,
68 switch (dds_qos.reliability().kind) {
69 case eprosima::fastdds::dds::BEST_EFFORT_RELIABILITY_QOS:
72 case eprosima::fastdds::dds::RELIABLE_RELIABILITY_QOS:
76 qos->
reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN;
80 switch (dds_qos.durability().kind) {
81 case eprosima::fastdds::dds::TRANSIENT_LOCAL_DURABILITY_QOS:
84 case eprosima::fastdds::dds::VOLATILE_DURABILITY_QOS:
88 qos->
durability = RMW_QOS_POLICY_DURABILITY_UNKNOWN;
95 switch (dds_qos.liveliness().kind) {
96 case eprosima::fastdds::dds::AUTOMATIC_LIVELINESS_QOS:
99 case eprosima::fastdds::dds::MANUAL_BY_TOPIC_LIVELINESS_QOS:
103 qos->
liveliness = RMW_QOS_POLICY_LIVELINESS_UNKNOWN;
109 switch (dds_qos.history().kind) {
110 case eprosima::fastdds::dds::KEEP_LAST_HISTORY_QOS:
113 case eprosima::fastdds::dds::KEEP_ALL_HISTORY_QOS:
117 qos->
history = RMW_QOS_POLICY_HISTORY_UNKNOWN;
120 qos->
depth =
static_cast<size_t>(dds_qos.history().depth);
131 template<
typename RTPSQoSPolicyT>
134 const RTPSQoSPolicyT & rtps_qos,
137 switch (rtps_qos.m_reliability.kind) {
138 case eprosima::fastrtps::BEST_EFFORT_RELIABILITY_QOS:
141 case eprosima::fastrtps::RELIABLE_RELIABILITY_QOS:
145 qos->
reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN;
149 switch (rtps_qos.m_durability.kind) {
150 case eprosima::fastrtps::TRANSIENT_LOCAL_DURABILITY_QOS:
153 case eprosima::fastrtps::VOLATILE_DURABILITY_QOS:
157 qos->
durability = RMW_QOS_POLICY_DURABILITY_UNKNOWN;
164 switch (rtps_qos.m_liveliness.kind) {
165 case eprosima::fastrtps::AUTOMATIC_LIVELINESS_QOS:
168 case eprosima::fastrtps::MANUAL_BY_TOPIC_LIVELINESS_QOS:
172 qos->
liveliness = RMW_QOS_POLICY_LIVELINESS_UNKNOWN;
179 void dds_qos_to_rmw_qos<eprosima::fastdds::dds::DataWriterQos>(
180 const eprosima::fastdds::dds::DataWriterQos & dds_qos,
184 void dds_qos_to_rmw_qos<eprosima::fastdds::dds::DataReaderQos>(
185 const eprosima::fastdds::dds::DataReaderQos & dds_qos,
189 template<
typename AttributeT>
192 const AttributeT & dds_qos,
197 dds_attributes_to_rmw_qos<eprosima::fastrtps::PublisherAttributes>(
198 const eprosima::fastrtps::PublisherAttributes & dds_qos,
203 dds_attributes_to_rmw_qos<eprosima::fastrtps::SubscriberAttributes>(
204 const eprosima::fastrtps::SubscriberAttributes & dds_qos,
207 #endif // RMW_FASTRTPS_SHARED_CPP__QOS_HPP_