Skip to content

Commit 015f1ee

Browse files
mm318jacobperron
authored andcommitted
add missing qos setings in get_actual_qos() (#284)
Signed-off-by: Miaofei <[email protected]>
1 parent 191a6b7 commit 015f1ee

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

rmw_fastrtps_shared_cpp/src/rmw_publisher.cpp

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)