@@ -157,6 +157,20 @@ __rmw_publisher_get_actual_qos(
157157 qos->history = RMW_QOS_POLICY_HISTORY_UNKNOWN;
158158 break ;
159159 }
160+ qos->depth = static_cast <size_t >(attributes.topic .historyQos .depth );
161+
162+ switch (attributes.qos .m_reliability .kind ) {
163+ case eprosima::fastrtps::BEST_EFFORT_RELIABILITY_QOS:
164+ qos->reliability = RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT;
165+ break ;
166+ case eprosima::fastrtps::RELIABLE_RELIABILITY_QOS:
167+ qos->reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
168+ break ;
169+ default :
170+ qos->reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN;
171+ break ;
172+ }
173+
160174 switch (attributes.qos .m_durability .kind ) {
161175 case eprosima::fastrtps::TRANSIENT_LOCAL_DURABILITY_QOS:
162176 qos->durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
@@ -168,18 +182,29 @@ __rmw_publisher_get_actual_qos(
168182 qos->durability = RMW_QOS_POLICY_DURABILITY_UNKNOWN;
169183 break ;
170184 }
171- switch (attributes.qos .m_reliability .kind ) {
172- case eprosima::fastrtps::BEST_EFFORT_RELIABILITY_QOS:
173- qos->reliability = RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT;
185+
186+ qos->deadline .sec = attributes.qos .m_deadline .period .seconds ;
187+ qos->deadline .nsec = attributes.qos .m_deadline .period .nanosec ;
188+
189+ qos->lifespan .sec = attributes.qos .m_lifespan .duration .seconds ;
190+ qos->lifespan .nsec = attributes.qos .m_lifespan .duration .nanosec ;
191+
192+ switch (attributes.qos .m_liveliness .kind ) {
193+ case eprosima::fastrtps::AUTOMATIC_LIVELINESS_QOS:
194+ qos->liveliness = RMW_QOS_POLICY_LIVELINESS_AUTOMATIC;
174195 break ;
175- case eprosima::fastrtps::RELIABLE_RELIABILITY_QOS:
176- qos->reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
196+ case eprosima::fastrtps::MANUAL_BY_PARTICIPANT_LIVELINESS_QOS:
197+ qos->liveliness = RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE;
198+ break ;
199+ case eprosima::fastrtps::MANUAL_BY_TOPIC_LIVELINESS_QOS:
200+ qos->liveliness = RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC;
177201 break ;
178202 default :
179- qos->reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN ;
203+ qos->liveliness = RMW_QOS_POLICY_LIVELINESS_UNKNOWN ;
180204 break ;
181205 }
182- qos->depth = static_cast <size_t >(attributes.topic .historyQos .depth );
206+ qos->liveliness_lease_duration .sec = attributes.qos .m_liveliness .lease_duration .seconds ;
207+ qos->liveliness_lease_duration .nsec = attributes.qos .m_liveliness .lease_duration .nanosec ;
183208
184209 return RMW_RET_OK;
185210}
0 commit comments