RTI Connext C API  Version 6.0.0
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
QoS Policies

Quality of Service (QoS) policies. More...

Modules

 ASYNCHRONOUS_PUBLISHER
 <<extension>> Specifies the asynchronous publishing settings of the DDS_Publisher instances.
 
 AVAILABILITY
 <<extension>> Configures the availability of data.
 
 BATCH
 <<extension>> Batch QoS policy used to enable batching in DDS_DataWriter instances.
 
 DATABASE
 <<extension>> Various threads and resource limits settings used by RTI Connext to control its internal database.
 
 DATA_READER_PROTOCOL
 <<extension>> Specifies the DataReader-specific protocol QoS.
 
 DATA_READER_RESOURCE_LIMITS
 <<extension>> Various settings that configure how DataReaders allocate and use physical memory for internal resources.
 
 DATA_REPRESENTATION
 A list of data representations supported by a DDS_DataWriter or DDS_DataReader.
 
 DATA_TAG
 Stores (name, value) pairs that can be used to determine access permissions.
 
 DATA_WRITER_PROTOCOL
 <<extension>> Along with DDS_WireProtocolQosPolicy and DDS_DataReaderProtocolQosPolicy, this QoS policy configures the DDS on-the-network protocol (RTPS).
 
 DATA_WRITER_RESOURCE_LIMITS
 <<extension>> Various settings that configure how a DDS_DataWriter allocates and uses physical memory for internal resources.
 
 DATA_WRITER_TRANSFER_MODE
 <<extension>> Specifies the DataWriter transfer mode QoS.
 
 DEADLINE
 Expresses the maximum duration (deadline) within which an instance is expected to be updated.
 
 DESTINATION_ORDER
 Controls the criteria used to determine the logical order among changes made by DDS_Publisher entities to the same instance of data (i.e., matching DDS_Topic and key).
 
 DISCOVERY
 <<extension>> Specifies the attributes required to discover participants in the domain.
 
 DISCOVERY_CONFIG
 <<extension>> Specifies the discovery configuration QoS.
 
 DOMAIN_PARTICIPANT_RESOURCE_LIMITS
 <<extension>> Various settings that configure how a DDS_DomainParticipant allocates and uses physical memory for internal resources, including the maximum sizes of various properties.
 
 DURABILITY
 This QoS policy specifies whether or not RTI Connext will store and deliver previously published data samples to new DDS_DataReader entities that join the network later.
 
 DURABILITY_SERVICE
 Various settings to configure the external RTI Persistence Service used by RTI Connext for DataWriters with a DDS_DurabilityQosPolicy setting of DDS_PERSISTENT_DURABILITY_QOS or DDS_TRANSIENT_DURABILITY_QOS.
 
 ENTITY_FACTORY
 A QoS policy for all DDS_Entity types that can act as factories for one or more other DDS_Entity types.
 
 ENTITY_NAME
 <<extension>> Assigns a name to a DDS_DomainParticipant, DDS_Publisher, DDS_Subscriber, DDS_DataWriter or DDS_DataReader. Except for DDS_Publisher and DDS_Subscriber, these names are visible during the discovery process and in RTI tools to help you visualize and debug your system.
 
 EVENT
 <<extension>> Configures the internal thread in a DomainParticipant that handles timed events.
 
 EXCLUSIVE_AREA
 <<extension>> Configures multi-thread concurrency and deadlock prevention capabilities.
 
 HISTORY
 Specifies the behavior of RTI Connext in the case where the value of an instance changes (one or more times) before it can be successfully communicated to one or more existing subscribers.
 
 GROUP_DATA
 Attaches a buffer of opaque data that is distributed by means of Built-in Topics during discovery.
 
 LATENCY_BUDGET
 Provides a hint as to the maximum acceptable delay from the time the data is written to the time it is received by the subscribing applications.
 
 LIFESPAN
 Specifies how long the data written by the DDS_DataWriter is considered valid.
 
 LIVELINESS
 Specifies and configures the mechanism that allows DDS_DataReader entities to detect when DDS_DataWriter entities become disconnected or "dead.".
 
 LOCATORFILTER
 <<extension>> The QoS policy used to report the configuration of a MultiChannel DataWriter as part of DDS_PublicationBuiltinTopicData.
 
 LOGGING
 <<extension>> Configures the RTI Connext logging facility.
 
 MULTICHANNEL
 <<extension>> Configures the ability of a DataWriter to send data on different multicast groups (addresses) based on the value of the data.
 
 OWNERSHIP
 Specifies whether it is allowed for multiple DDS_DataWriter (s) to write the same instance of the data and if so, how these modifications should be arbitrated.
 
 OWNERSHIP_STRENGTH
 Specifies the value of the strength used to arbitrate among multiple DDS_DataWriter objects that attempt to modify the same instance of a data type (identified by DDS_Topic + key).
 
 PARTITION
 Set of strings that introduces a logical partition among the topics visible by a DDS_Publisher and a DDS_Subscriber.
 
 PRESENTATION
 Specifies how the samples representing changes to data instances are presented to a subscribing application.
 
 PROFILE
 <<extension>> Configures the way that XML documents containing QoS profiles are loaded by RTI Connext.
 
 PROPERTY
 <<extension>> Stores (name, value) pairs that can be used to configure certain parameters of RTI Connext that are not exposed through formal QoS policies. Can also be used to store and propagate application-specific name/value pairs that can be retrieved by user code during discovery.
 
 PUBLISH_MODE
 <<extension>> Specifies how RTI Connext sends application data on the network. This QoS policy can be used to tell RTI Connext to use its own thread to send data, instead of the user thread.
 
 READER_DATA_LIFECYCLE
 Controls how a DataReader manages the lifecycle of the data that it has received.
 
 RECEIVER_POOL
 <<extension>> Configures threads used by RTI Connext to receive and process data from transports (for example, UDP sockets).
 
 RELIABILITY
 Indicates the level of reliability offered/requested by RTI Connext.
 
 RESOURCE_LIMITS
 Controls the amount of physical memory allocated for DDS entities, if dynamic allocations are allowed, and how they occur. Also controls memory usage among different instance values for keyed topics.
 
 SERVICE
 <<extension>> Service QoS policy is used to indicate what kind of service is associated with the DDS entity.
 
 SYSTEM_RESOURCE_LIMITS
 <<extension>> Configures DomainParticipant-independent resources used by RTI Connext.
 
 TIME_BASED_FILTER
 Filter that allows a DDS_DataReader to specify that it is interested only in (potentially) a subset of the values of the data.
 
 TOPIC_DATA
 Attaches a buffer of opaque data that is distributed by means of Built-in Topics during discovery.
 
 TOPIC_QUERY_DISPATCH
 Configures the ability of a DDS_DataWriter to publish historical samples.
 
 TRANSPORT_BUILTIN
 <<extension>> Specifies which built-in transports are used.
 
 TRANSPORT_MULTICAST
 <<extension>> Specifies the multicast address on which a DDS_DataReader wants to receive its data. It can also specify a port number, as well as a subset of the available (at the DDS_DomainParticipant level) transports with which to receive the multicast data.
 
 TRANSPORT_MULTICAST_MAPPING
 <<extension>> Specifies a list of topic expressions and addresses that can be used by an Entity with a specific topic name to receive data.
 
 TRANSPORT_PRIORITY
 This QoS policy allows the application to take advantage of transport that are capable of sending messages with different priorities.
 
 TRANSPORT_SELECTION
 <<extension>> Specifies the physical transports that a DDS_DataWriter or DDS_DataReader may use to send or receive data.
 
 TRANSPORT_UNICAST
 <<extension>> Specifies a subset of transports and a port number that can be used by an Entity to receive data.
 
 TYPE_CONSISTENCY_ENFORCEMENT
 Defines the rules for determining whether the type used to publish a given topic is consistent with that used to subscribe to it.
 
 TYPESUPPORT
 <<extension>> Allows you to attach application-specific values to a DDS_DataWriter or DDS_DataReader, which are passed to the serialization or deserialization routine of the associated data type and choose whether to set padding bytes to zero during serialization.
 
 USER_DATA
 Attaches a buffer of opaque data that is distributed by means of Built-in Topics during discovery.
 
 WRITER_DATA_LIFECYCLE
 Controls how a DataWriter handles the lifecycle of the instances (keys) that it is registered to manage.
 
 WIRE_PROTOCOL
 <<extension>> Specifies the wire protocol related attributes for the DDS_DomainParticipant.
 
 Extended Qos Support
 <<extension>> Types and defines used in extended QoS policies.
 

Data Structures

struct  DDS_QosPolicyCount
 Type to hold a counter for a DDS_QosPolicyId_t. More...
 
struct  DDS_QosPolicyCountSeq
 Declares IDL sequence < DDS_QosPolicyCount > More...
 

Macros

#define DDS_QOS_POLICY_COUNT
 Number of QoS policies in DDS_QosPolicyId_t.
 

Enumerations

enum  DDS_QosPolicyId_t {
  DDS_INVALID_QOS_POLICY_ID,
  DDS_USERDATA_QOS_POLICY_ID,
  DDS_DURABILITY_QOS_POLICY_ID,
  DDS_PRESENTATION_QOS_POLICY_ID,
  DDS_DEADLINE_QOS_POLICY_ID,
  DDS_LATENCYBUDGET_QOS_POLICY_ID,
  DDS_OWNERSHIP_QOS_POLICY_ID,
  DDS_OWNERSHIPSTRENGTH_QOS_POLICY_ID,
  DDS_LIVELINESS_QOS_POLICY_ID,
  DDS_TIMEBASEDFILTER_QOS_POLICY_ID,
  DDS_PARTITION_QOS_POLICY_ID,
  DDS_RELIABILITY_QOS_POLICY_ID,
  DDS_DESTINATIONORDER_QOS_POLICY_ID,
  DDS_HISTORY_QOS_POLICY_ID,
  DDS_RESOURCELIMITS_QOS_POLICY_ID,
  DDS_ENTITYFACTORY_QOS_POLICY_ID,
  DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID,
  DDS_READERDATALIFECYCLE_QOS_POLICY_ID,
  DDS_TOPICDATA_QOS_POLICY_ID,
  DDS_GROUPDATA_QOS_POLICY_ID,
  DDS_TRANSPORTPRIORITY_QOS_POLICY_ID,
  DDS_LIFESPAN_QOS_POLICY_ID,
  DDS_DURABILITYSERVICE_QOS_POLICY_ID,
  DDS_DATA_REPRESENTATION_QOS_POLICY_ID,
  DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID,
  DDS_DATATAG_QOS_POLICY_ID,
  DDS_WIREPROTOCOL_QOS_POLICY_ID,
  DDS_DISCOVERY_QOS_POLICY_ID,
  DDS_DATAREADERRESOURCELIMITS_QOS_POLICY_ID,
  DDS_DATAWRITERRESOURCELIMITS_QOS_POLICY_ID,
  DDS_DATAREADERPROTOCOL_QOS_POLICY_ID,
  DDS_DATAWRITERPROTOCOL_QOS_POLICY_ID,
  DDS_DOMAINPARTICIPANTRESOURCELIMITS_QOS_POLICY_ID,
  DDS_EVENT_QOS_POLICY_ID,
  DDS_DATABASE_QOS_POLICY_ID,
  DDS_RECEIVERPOOL_QOS_POLICY_ID,
  DDS_DISCOVERYCONFIG_QOS_POLICY_ID,
  DDS_EXCLUSIVEAREA_QOS_POLICY_ID ,
  DDS_SYSTEMRESOURCELIMITS_QOS_POLICY_ID,
  DDS_TRANSPORTSELECTION_QOS_POLICY_ID,
  DDS_TRANSPORTUNICAST_QOS_POLICY_ID,
  DDS_TRANSPORTMULTICAST_QOS_POLICY_ID,
  DDS_TRANSPORTBUILTIN_QOS_POLICY_ID,
  DDS_TYPESUPPORT_QOS_POLICY_ID,
  DDS_PROPERTY_QOS_POLICY_ID,
  DDS_PUBLISHMODE_QOS_POLICY_ID,
  DDS_ASYNCHRONOUSPUBLISHER_QOS_POLICY_ID,
  DDS_ENTITYNAME_QOS_POLICY_ID ,
  DDS_BATCH_QOS_POLICY_ID,
  DDS_PROFILE_QOS_POLICY_ID,
  DDS_LOCATORFILTER_QOS_POLICY_ID,
  DDS_MULTICHANNEL_QOS_POLICY_ID ,
  DDS_AVAILABILITY_QOS_POLICY_ID,
  DDS_TRANSPORTMULTICASTMAPPING_QOS_POLICY_ID,
  DDS_LOGGING_QOS_POLICY_ID,
  DDS_TOPICQUERYDISPATCH_QOS_POLICY_ID,
  DDS_DATAWRITERTRANSFERMODE_QOS_POLICY_ID
}
 Type to identify QosPolicies. More...
 

Detailed Description

Quality of Service (QoS) policies.

Data Distribution Service (DDS) relies on the use of QoS. A QoS is a set of characteristics that controls some aspect of the behavior of DDS. A QoS is comprised of individual QoS policies (objects conceptually deriving from an abstract QosPolicy class).

DDSQosPolicies.png
Supported QoS policies

The QosPolicy provides the basic mechanism for an application to specify quality of service parameters. It has an attribute name that is used to uniquely identify each QosPolicy.

QosPolicy implementation is comprised of a name, an ID, and a type. The type of a QosPolicy value may be atomic, such as an integer or float, or compound (a structure). Compound types are used whenever multiple parameters must be set coherently to define a consistent value for a QosPolicy.

QoS (i.e., a list of QosPolicy objects) may be associated with all DDS_Entity objects in the system such as DDS_Topic, DDS_DataWriter, DDS_DataReader, DDS_Publisher, DDS_Subscriber, and DDS_DomainParticipant.

Specifying QoS on entities

QosPolicies can be set programmatically when an DDS_Entity is created, or modified with the DDS_Entity's set_qos (abstract) function.

QosPolicies can also be configured from XML resources (files, strings). With this approach, you can change the QoS without recompiling the application. For more information, see Configuring QoS Profiles with XML.

To customize a DDS_Entity's QoS before creating the entity, the correct pattern is:

Each QosPolicy is treated independently from the others. This approach has the advantage of being very extensible. However, there may be cases where several policies are in conflict. Consistency checking is performed each time the policies are modified via the set_qos (abstract) operation, or when the DDS_Entity is created.

When a policy is changed after being set to a given value, it is not required that the new value be applied instantaneously; RTI Connext is allowed to apply it after a transition phase. In addition, some QosPolicy have immutable semantics, meaning that they can only be specified either at DDS_Entity creation time or else prior to calling the DDS_Entity_enable operation on the entity.

Each DDS_Entity can be configured with a list of QosPolicy objects. However, not all QosPolicies are supported by each DDS_Entity. For instance, a DDS_DomainParticipant supports a different set of QosPolicies than a DDS_Topic or a DDS_Publisher.

QoS compatibility

In several cases, for communications to occur properly (or efficiently), a QosPolicy on the publisher side must be compatible with a corresponding policy on the subscriber side. For example, if a DDS_Subscriber requests to receive data reliably while the corresponding DDS_Publisher defines a best-effort policy, communication will not happen as requested.

To address this issue and maintain the desirable decoupling of publication and subscription as much as possible, the QosPolicy specification follows the subscriber-requested, publisher-offered pattern.

In this pattern, the subscriber side can specify a "requested" value for a particular QosPolicy. The publisher side specifes an "offered" value for that QosPolicy. RTI Connext will then determine whether the value requested by the subscriber side is compatible with what is offered by the publisher side. If the two policies are compatible, then communication will be established. If the two policies are not compatible, RTI Connext will not establish communications between the two DDS_Entity objects and will record this fact by means of the DDS_OFFERED_INCOMPATIBLE_QOS_STATUS on the publisher end and DDS_REQUESTED_INCOMPATIBLE_QOS_STATUS on the subscriber end. The application can detect this fact by means of a DDS_Listener or a DDS_Condition.

The following properties are defined on a QosPolicy.

Macro Definition Documentation

#define DDS_QOS_POLICY_COUNT

Number of QoS policies in DDS_QosPolicyId_t.

Enumeration Type Documentation

Type to identify QosPolicies.

Enumerator:
DDS_INVALID_QOS_POLICY_ID 

Identifier for an invalid QoS policy.

DDS_USERDATA_QOS_POLICY_ID 

Identifier for DDS_UserDataQosPolicy.

DDS_DURABILITY_QOS_POLICY_ID 

Identifier for DDS_DurabilityQosPolicy.

DDS_PRESENTATION_QOS_POLICY_ID 

Identifier for DDS_PresentationQosPolicy.

DDS_DEADLINE_QOS_POLICY_ID 

Identifier for DDS_DeadlineQosPolicy.

DDS_LATENCYBUDGET_QOS_POLICY_ID 

Identifier for DDS_LatencyBudgetQosPolicy.

DDS_OWNERSHIP_QOS_POLICY_ID 

Identifier for DDS_OwnershipQosPolicy.

DDS_OWNERSHIPSTRENGTH_QOS_POLICY_ID 

Identifier for DDS_OwnershipStrengthQosPolicy.

DDS_LIVELINESS_QOS_POLICY_ID 

Identifier for DDS_LivelinessQosPolicy.

DDS_TIMEBASEDFILTER_QOS_POLICY_ID 

Identifier for DDS_TimeBasedFilterQosPolicy.

DDS_PARTITION_QOS_POLICY_ID 

Identifier for DDS_PartitionQosPolicy.

DDS_RELIABILITY_QOS_POLICY_ID 

Identifier for DDS_ReliabilityQosPolicy.

DDS_DESTINATIONORDER_QOS_POLICY_ID 

Identifier for DDS_DestinationOrderQosPolicy.

DDS_HISTORY_QOS_POLICY_ID 

Identifier for DDS_HistoryQosPolicy.

DDS_RESOURCELIMITS_QOS_POLICY_ID 

Identifier for DDS_ResourceLimitsQosPolicy.

DDS_ENTITYFACTORY_QOS_POLICY_ID 

Identifier for DDS_EntityFactoryQosPolicy.

DDS_WRITERDATALIFECYCLE_QOS_POLICY_ID 

Identifier for DDS_WriterDataLifecycleQosPolicy.

DDS_READERDATALIFECYCLE_QOS_POLICY_ID 

Identifier for DDS_ReaderDataLifecycleQosPolicy.

DDS_TOPICDATA_QOS_POLICY_ID 

Identifier for DDS_TopicDataQosPolicy.

DDS_GROUPDATA_QOS_POLICY_ID 

Identifier for DDS_GroupDataQosPolicy.

DDS_TRANSPORTPRIORITY_QOS_POLICY_ID 

Identifier for DDS_TransportPriorityQosPolicy.

DDS_LIFESPAN_QOS_POLICY_ID 

Identifier for DDS_LifespanQosPolicy.

DDS_DURABILITYSERVICE_QOS_POLICY_ID 

Identifier for DDS_DurabilityServiceQosPolicy.

DDS_DATA_REPRESENTATION_QOS_POLICY_ID 

Identifier for DDS_DataRepresentationQosPolicy.

DDS_TYPE_CONSISTENCY_ENFORCEMENT_QOS_POLICY_ID 

Identifier for DDS_TypeConsistencyEnforcementQosPolicy.

DDS_DATATAG_QOS_POLICY_ID 

Identifier for DDS_DataTagQosPolicy.

DDS_WIREPROTOCOL_QOS_POLICY_ID 

<<extension>> Identifier for DDS_WireProtocolQosPolicy

DDS_DISCOVERY_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DiscoveryQosPolicy

DDS_DATAREADERRESOURCELIMITS_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DataReaderResourceLimitsQosPolicy

DDS_DATAWRITERRESOURCELIMITS_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DataWriterResourceLimitsQosPolicy

DDS_DATAREADERPROTOCOL_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DataReaderProtocolQosPolicy

DDS_DATAWRITERPROTOCOL_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DataWriterProtocolQosPolicy

DDS_DOMAINPARTICIPANTRESOURCELIMITS_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DomainParticipantResourceLimitsQosPolicy

DDS_EVENT_QOS_POLICY_ID 

<<extension>> Identifier for DDS_EventQosPolicy

DDS_DATABASE_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DatabaseQosPolicy

DDS_RECEIVERPOOL_QOS_POLICY_ID 

<<extension>> Identifier for DDS_ReceiverPoolQosPolicy

DDS_DISCOVERYCONFIG_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DiscoveryConfigQosPolicy

DDS_EXCLUSIVEAREA_QOS_POLICY_ID 

<<extension>> Identifier for DDS_ExclusiveAreaQosPolicy

DDS_SYSTEMRESOURCELIMITS_QOS_POLICY_ID 

<<extension>> Identifier for DDS_SystemResourceLimitsQosPolicy

DDS_TRANSPORTSELECTION_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TransportSelectionQosPolicy

DDS_TRANSPORTUNICAST_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TransportUnicastQosPolicy

DDS_TRANSPORTMULTICAST_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TransportMulticastQosPolicy

DDS_TRANSPORTBUILTIN_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TransportBuiltinQosPolicy

DDS_TYPESUPPORT_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TypeSupportQosPolicy

DDS_PROPERTY_QOS_POLICY_ID 

<<extension>> Identifier for DDS_PropertyQosPolicy

DDS_PUBLISHMODE_QOS_POLICY_ID 

<<extension>> Identifier for DDS_PublishModeQosPolicy

DDS_ASYNCHRONOUSPUBLISHER_QOS_POLICY_ID 

<<extension>> Identifier for DDS_AsynchronousPublisherQosPolicy

DDS_ENTITYNAME_QOS_POLICY_ID 

<<extension>> Identifier for DDS_EntityNameQosPolicy

DDS_BATCH_QOS_POLICY_ID 

<<extension>> Identifier for DDS_BatchQosPolicy

DDS_PROFILE_QOS_POLICY_ID 

<<extension>> Identifier for DDS_ProfileQosPolicy

DDS_LOCATORFILTER_QOS_POLICY_ID 

<<extension>> Identifier for DDS_LocatorFilterQosPolicy

DDS_MULTICHANNEL_QOS_POLICY_ID 

<<extension>> Identifier for DDS_MultiChannelQosPolicy

DDS_AVAILABILITY_QOS_POLICY_ID 

<<extension>> Identifier for DDS_AvailabilityQosPolicy

DDS_TRANSPORTMULTICASTMAPPING_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TransportMulticastMappingQosPolicy

DDS_LOGGING_QOS_POLICY_ID 

<<extension>> Identifier for DDS_LoggingQosPolicy

DDS_TOPICQUERYDISPATCH_QOS_POLICY_ID 

<<extension>> Identifier for DDS_TopicQueryDispatchQosPolicy

DDS_DATAWRITERTRANSFERMODE_QOS_POLICY_ID 

<<extension>> Identifier for DDS_DataWriterTransferModeQosPolicy


RTI Connext C API Version 6.0.0 Copyright © Sun Mar 3 2019 Real-Time Innovations, Inc