Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 8e9e088

Browse files
mm318jacobperron
authored andcommitted
add missing qos setings in get_actual_qos() (#357)
Signed-off-by: Miaofei <[email protected]>
1 parent 1fbb7a0 commit 8e9e088

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

rmw_connext_cpp/src/rmw_publisher.cpp

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,7 @@ rmw_publisher_get_actual_qos(
390390
RMW_SET_ERROR_MSG("publisher internal dds publisher is invalid");
391391
return RMW_RET_ERROR;
392392
}
393+
393394
switch (dds_qos.history.kind) {
394395
case DDS_KEEP_LAST_HISTORY_QOS:
395396
qos->history = RMW_QOS_POLICY_HISTORY_KEEP_LAST;
@@ -401,6 +402,20 @@ rmw_publisher_get_actual_qos(
401402
qos->history = RMW_QOS_POLICY_HISTORY_UNKNOWN;
402403
break;
403404
}
405+
qos->depth = static_cast<size_t>(dds_qos.history.depth);
406+
407+
switch (dds_qos.reliability.kind) {
408+
case DDS_BEST_EFFORT_RELIABILITY_QOS:
409+
qos->reliability = RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT;
410+
break;
411+
case DDS_RELIABLE_RELIABILITY_QOS:
412+
qos->reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
413+
break;
414+
default:
415+
qos->reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN;
416+
break;
417+
}
418+
404419
switch (dds_qos.durability.kind) {
405420
case DDS_TRANSIENT_LOCAL_DURABILITY_QOS:
406421
qos->durability = RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL;
@@ -412,18 +427,29 @@ rmw_publisher_get_actual_qos(
412427
qos->durability = RMW_QOS_POLICY_DURABILITY_UNKNOWN;
413428
break;
414429
}
415-
switch (dds_qos.reliability.kind) {
416-
case DDS_BEST_EFFORT_RELIABILITY_QOS:
417-
qos->reliability = RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT;
430+
431+
qos->deadline.sec = dds_qos.deadline.period.sec;
432+
qos->deadline.nsec = dds_qos.deadline.period.nanosec;
433+
434+
qos->lifespan.sec = dds_qos.lifespan.duration.sec;
435+
qos->lifespan.nsec = dds_qos.lifespan.duration.nanosec;
436+
437+
switch (dds_qos.liveliness.kind) {
438+
case DDS_AUTOMATIC_LIVELINESS_QOS:
439+
qos->liveliness = RMW_QOS_POLICY_LIVELINESS_AUTOMATIC;
418440
break;
419-
case DDS_RELIABLE_RELIABILITY_QOS:
420-
qos->reliability = RMW_QOS_POLICY_RELIABILITY_RELIABLE;
441+
case DDS_MANUAL_BY_PARTICIPANT_LIVELINESS_QOS:
442+
qos->liveliness = RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE;
443+
break;
444+
case DDS_MANUAL_BY_TOPIC_LIVELINESS_QOS:
445+
qos->liveliness = RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC;
421446
break;
422447
default:
423-
qos->reliability = RMW_QOS_POLICY_RELIABILITY_UNKNOWN;
448+
qos->liveliness = RMW_QOS_POLICY_LIVELINESS_UNKNOWN;
424449
break;
425450
}
426-
qos->depth = static_cast<size_t>(dds_qos.history.depth);
451+
qos->liveliness_lease_duration.sec = dds_qos.liveliness.lease_duration.sec;
452+
qos->liveliness_lease_duration.nsec = dds_qos.liveliness.lease_duration.nanosec;
427453

428454
return RMW_RET_OK;
429455
}

0 commit comments

Comments
 (0)