FeaturesΒΆ

Safe DDS provides a set of features that make it a powerful and flexible communication library while maintaining a high level of safety and embedded systems compatibility. The following table provides an overview of the main features of Safe DDS with respect to the OMG DDS Quality of Service (QoS) policies. Please refer to OMG DDS v1.4 API compliance matrix for a compliance matrix between the OMG DDS v1.4 API and Safe DDS.

OMG DDS v1.4 QoS

Safe DDS support

Deadline

Full support.

Durability

VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS

EntityFactory

Supported in DomainParticipantQos, PublisherQos, and SubscriberQos.

History

Both KEEP_LAST_HISTORY_QOS, and KEEP_ALL_HISTORY_QOS supported with bounded depth.

Liveliness

Full support.

Reliability

Both BEST_EFFORT_RELIABILITY_QOS, and RELIABLE_RELIABILITY_QOS with max_blocking_time set to 0.

ResourceLimits

Only bounded max_samples_per_instance, max_instances, and max_samples.

In addition to the previous Qos policies, Safe DDS provides the following features:

  • OMG DDS v1.4 compliant API (see OMG DDS v1.4 API compliance matrix).

  • Additional modern C++ APIs, including a fully static-memory API.

  • OMG RTPS v2.5 compliant wire protocol.

  • OMG DDS/RTPS standard discovery: SEDP and SPDP.

  • DDS Topic Instance support.

  • Shared memory communication between local DataWriters and DataReaders.

  • Customizable execution model.

  • Customizable transport layer.

  • Multicast and unicast support.

  • Fragmentation of large data samples.

  • Wire protocol optional packet-level integrity checks.

  • Wire protocol time-based events can be tuned.

  • Multi DDS Domain support.

  • Full control over memory usage:

    • Static memory mode: no heap at all.

    • Preallocated memory mode: allocations are done at configuration time.

    • Dynamic memory mode: user controlled heap.