pub enum Ownership {
Shared,
Exclusive {
strength: i32,
},
}Expand description
DDS 2.2.3.9 OWNERSHIP
§Support status / known limitation
RustDDS uses OWNERSHIP only for matching: a Shared endpoint and an
Exclusive endpoint are incompatible (INCOMPATIBLE_QOS), while the
strength value does not affect matching (it is a writer-only policy,
DDS spec v1.4 §2.2.3.10).
RustDDS does not implement EXCLUSIVE-ownership delivery filtering.
When several EXCLUSIVE writers publish to the same instance, a correct
implementation would deliver only the samples of the highest-strength
live writer (with owner hand-off on liveliness loss / unregister). RustDDS
instead delivers samples from all matched writers. Consequently a reader
sees data from every EXCLUSIVE writer regardless of strength.
This surfaces in the dds-rtps interoperability suite as the single failing
ownership case Test_Ownership_3 (two same-instance EXCLUSIVE writers,
expected RECEIVING_FROM_ONE, RustDDS yields RECEIVING_FROM_BOTH). All
other ownership cases pass. Implementing per-instance owner tracking would
remove this limitation.