Lifespan QoS implementation
This commit enables specifying a duration for data to be valid when writing samples. After this duration, samples are dropped from the reader and writer history cache. See section 2.2.3.16 of the DDS specification for more details on this QoS. The expiration of samples in the reader history cache is calculated based on the reception timestamp of the sample and uses the monotonic clock. As a result, the current implementation does not rely on clock synchronisation between reader and writer. There may be reasons to change this behavior in future and use the source timestamp instead. Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
This commit is contained in:
parent
1ec9c3a194
commit
ef0f4c2ae7
21 changed files with 660 additions and 81 deletions
|
@ -93,7 +93,11 @@ static void setqos (dds_qos_t *q, size_t i, bool isrd, bool create)
|
|||
dds_qset_history (q, (dds_history_kind_t) ((i + 1) % 2), (int32_t) (i + 1));
|
||||
dds_qset_resource_limits (q, (int32_t) i + 3, (int32_t) i + 2, (int32_t) i + 1);
|
||||
dds_qset_presentation (q, (dds_presentation_access_scope_kind_t) ((psi + 1) % 3), 1, 1);
|
||||
#ifdef DDSI_INCLUDE_LIFESPAN
|
||||
dds_qset_lifespan (q, INT64_C (23456789012345678) + (int32_t) i);
|
||||
#else
|
||||
dds_qset_lifespan (q, DDS_INFINITY);
|
||||
#endif
|
||||
dds_qset_deadline (q, INT64_C (67890123456789012) + (int32_t) i);
|
||||
dds_qset_latency_budget (q, INT64_C (45678901234567890) + (int32_t) i);
|
||||
dds_qset_ownership (q, (dds_ownership_kind_t) ((i + 1) % 2));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue