Quality of Service

As of version 0.4.0, jdds adds minimal support for quality of service (QoS). This is accomplished by mapping QoS related API classes to corresponding ones in uDDS. I.e. DataWriterQos, DataReaderQos etc. are mapped into uDDS QualityOfService.

Following table summarize implementation status of quality of service policies.

Quality of Service
Policy RxO Remarks
USER_DATA ok
TOPIC_DATA ok
GROUP_DATA ok
DURABILITY ok RxO uDDS supports only VOLATILE and TRANSIENT_LOCAL kinds
DURABILITY_SERVICE Not ok Not implemented
PRESENTATION ok RxO Partly implemented. uDDS has limited support for coherent sets with access_scope kinds INSTANCE and TOPIC. uDDS makes sure that each coherent set arriving from a single writer will be added into readers history cache atomically. I.e. only after coherent set has been fully received.
DEADLINE ok RxO
LATENCY_BUDGET Not ok RxO Not implemented. This is considered as a hint to service.
OWNERSHIP ok
OWNERSHIP_STRENGTH ok
LIVELINESS ok RxO
TIME_BASED_FILTER ok
PARTITION ok uDDS allows both reader and writer to have regular expressions in partition names.
RELIABILITY ok RxO Simple testing ok
TRANSPORT_PRIORITY Not ok Not implemented. This is considered as a hint to service.
LIFESPAN ok uDDS writer does not check if all the readers have received a sample that has expired, which makes writer not strictly reliable if using this policy.
DESTINATION_ORDER ok RxO
HISTORY ok uDDS writer does not block if using KEEP_ALL kind
RESOURCE_LIMITS ok uDDS does not have listeners on readers for violations of RESOURCE_LIMITS. I.e. SampleRejected status is not updated.
ENTITY_FACTORY Not ok Not implemented. Behaves as autoenableCreatedEntities=true
WRITER_DATA_LIFECYCLE Ok Simple testing ok
READER_DATA_LIFECYCLE Not ok Not implemented. Delays considered infinite.
DATA_REPRESENTATION ok RxO This policy is defined in X-Types. Only XCDR_DATA_REPRESENTATION kind is supported.
TYPE_CONSISTENCY_ENFORCEMENT Not ok RxO This policy is defined in X-Types. X-Types documentation specifies DISALLOW_TYPE_COERCION and ALLOW_TYPE_COERCION kinds, whereas java API specifies EXACT_TYPE_TYPE_CONSISTENCY, EXACT_NAME_TYPE_CONSISTENCY, DECLARED_TYPE_CONSISTENCY, ASSIGNABLE_TYPE_CONSISTENCY