RTI Connext DDS Micro C++ API
Version 2.4.14
|
<<singleton>> <<interface>> <<cert>> Allows creation and destruction of DDSDomainParticipant objects. More...
#include <dds_cpp_domain.hxx>
Static Public Member Functions | |
static DDSDomainParticipantFactory * | get_instance () |
<<cert>> Gets the singleton instance of this class. | |
static DDS_ReturnCode_t | finalize_instance () |
<<eXtension>> Destroys the singleton instance of this class. |
<<singleton>> <<interface>> <<cert>> Allows creation and destruction of DDSDomainParticipant objects.
The sole purpose of this class is to allow the creation and destruction of DDSDomainParticipant objects. This class itself is a <<singleton>>, and accessed via the get_instance() method, and destroyed with finalize_instance() method.
A single application can participate in multiple domains by instantiating multiple DDSDomainParticipant objects.
An application may even instantiate multiple participants in the same domain. Participants in the same domain exchange data in the same way regardless of whether they are in the same application or different applications or on the same node or different nodes; their location is transparent.
There are two important caveats:
With multiple participants in the same domain on the same node (in the same application or different applications), each participant must be assigned its own receive ports. The receive ports are calculated based on the domain ID and the participant index set in the DDS_WireProtocolQosPolicy. The default index (-1) causes the participant to automatically search for the next available index, starting at 0, when it is created. If an index larger or equal to 0 is assigned then only that value will be used. If another participant with the same index already exists the participant creation will fail.
NOTE: An exception to this rule is multicast ports. Multicast ports are shared between between participants in the same domain on the same host). Thus, the index value is ignored.
|
static |
<<cert>> Gets the singleton instance of this class.
DDSTheParticipantFactory can be used as an alias for the singleton factory returned by this operation.
|
static |
<<eXtension>> Destroys the singleton instance of this class.
Only necessary to explicitly reclaim resources used by the participant factory singleton. Note that on many OSes, these resources are automatically reclaimed by the OS when the program terminates. Some memory checker tools still flag these as unreclaimed however. So this method provides a way to clean up memory used by the participant factory.
|
pure virtual |
<<cert>> Creates a new DDSDomainParticipant object.
If you want to create multiple participants on a given host in the same domain, make sure each one has a different participant index (set in the DDS_WireProtocolQosPolicy). This in turn will ensure each participant uses a different port number (since the unicast port numbers are calculated from the participant index and the domain ID).
Note that if there is a single participant per host in a given domain, the participant index can be left at the default value (-1).
domainId | <<in>> ID of the domain that the application intends to join. [range] [>=0], and does not violate guidelines stated in DDS_RtpsWellKnownPorts_t. |
qos | <<in>> the domain participant's QoS. The special value DDS_PARTICIPANT_QOS_DEFAULT can be used to indicate that the DDSDomainParticipant should be created with the default DDS_DomainParticipantQos set in the DDSDomainParticipantFactory. |
listener | <<in>> the domain participant's listener. |
mask | <<in>> Changes of communication status to be invoked on the listener. |
|
pure virtual |
Deletes an existing DDSDomainParticipant.
a_participant | <<in>> DDSDomainParticipant to be deleted. |
|
pure virtual |
<<cert>> Locates an existing DDSDomainParticipant.
If no such DDSDomainParticipant exists, the operation will return NULL value.
If multiple DDSDomainParticipant entities belonging to that domainId exist, then the operation will return one of them. It is not specified which one.
domainId | <<in>> ID of the domain participant to lookup. |
|
pure virtual |
Sets the default DDS_DomainParticipantQos values for this domain participant factory.
This method may potentially allocate memory depending on the sequences contained in some QoS policies.
qos | <<inout>> Qos to be used by the DDSDomainParticipant. The special value DDS_PARTICIPANT_QOS_DEFAULT may be passed as qos to indicate that the default QoS should be reset back to the initial values the factory would used if DDSDomainParticipantFactory::set_default_participant_qos had never been called. |
|
pure virtual |
Initializes the DDS_DomainParticipantQos instance with default values.
The retrieved qos
will match the set of values specified on the last successful call to DDSDomainParticipantFactory::set_default_participant_qos, or else, if the call was never made, the default values listed in DDS_DomainParticipantQos.
This method may potentially allocate memory depending on the sequences contained in some QoS policies.
qos | <<out>> the domain participant's QoS |
|
pure virtual |
<<cert>> Gets the value for participant factory QoS.
qos | <<inout>> QoS to be filled up. |
|
pure virtual |
<<cert>> Sets the value for a participant factory QoS.
The DDS_DomainParticipantFactoryQos::entity_factory can be changed. The other policies are immutable.
Note that despite having QoS, the DDSDomainParticipantFactory is not an DDSEntity.
Note that this function may cause RTI Connext DDS Micro to free and reallocate memory, depending on the QoS policies that are changed.
qos | <<in>> Set of policies to be applied to DDSDomainParticipantFactory. Policies must be consistent. Immutable policies can only be changed before calling any other RTI Connext DDS Micro methods except for DDSDomainParticipantFactory::get_qos |
|
pure virtual |
<<cert>> Retrieves the singleton registry instance associated with the factory.