RTI Connext Traditional C++ API Version 7.3.0
DDS_EntityFactoryQosPolicy Struct Reference

A QoS policy for all DDSEntity types that can act as factories for one or more other DDSEntity types. More...

Public Attributes

DDS_Boolean autoenable_created_entities
 Specifies whether the entity acting as a factory automatically enables the instances it creates. More...
 

Detailed Description

A QoS policy for all DDSEntity types that can act as factories for one or more other DDSEntity types.

Entity:
DDSDomainParticipantFactory, DDSDomainParticipant, DDSPublisher, DDSSubscriber
Properties:
RxO = NO
Changeable = YES

Usage

This policy controls the behavior of the DDSEntity as a factory for other entities. It controls whether or not child entities are created in the enabled state.

RTI Connext uses a factory design pattern for creating DDS Entities. That is, a parent entity must be used to create child entities. DomainParticipants create Topics, Publishers and Subscribers. Publishers create DataWriters. Subscribers create DataReaders.

By default, a child object is enabled upon creation (initialized and may be actively used). With this QoS policy, a child object can be created in a disabled state. A disabled entity is only partially initialized and cannot be used until the entity is enabled. Note: an entity can only be enabled; it cannot be disabled after it has been enabled.

This QoS policy is useful to synchronize the initialization of DDS Entities. For example, when a DDSDataReader is created in an enabled state, its existence is immediately propagated for discovery and the DDSDataReader object's listener called as soon as data is received. The initialization process for an application may extend beyond the creation of the DDSDataReader, and thus, it may not be desireable for the DDSDataReader to start to receive or process any data until the initialization process is complete. So by creating readers in a disabled state, your application can make sure that no data is received until the rest of the application initialization is complete, and at that time, enable the them.

Note: if an entity is disabled, then all of the child entities it creates will be disabled, too, regardless of the setting of this QoS policy. However, enabling a disabled entity will enable all of its children if this QoS policy is set to automatically enable children entities.

This policy is mutable. A change in the policy affects only the entities created after the change, not any previously created entities.

Member Data Documentation

◆ autoenable_created_entities

DDS_Boolean DDS_EntityFactoryQosPolicy::autoenable_created_entities

Specifies whether the entity acting as a factory automatically enables the instances it creates.

The setting of autoenable_created_entities to DDS_BOOLEAN_TRUE indicates that the factory create_<entity> operation(s) will automatically invoke the DDSEntity::enable operation each time a new DDSEntity is created. Therefore, the DDSEntity returned by create_<entity> will already be enabled. A setting of DDS_BOOLEAN_FALSE indicates that the DDSEntity will not be automatically enabled. Your application will need to call DDSEntity::enable itself.

The default setting of autoenable_created_entities = DDS_BOOLEAN_TRUE means that, by default, it is not necessary to explicitly call DDSEntity::enable on newly created entities.

[default] DDS_BOOLEAN_TRUE