RTI Connext Modern C++ API
Version 6.1.1
|
Specifies a list of topic_expressions and multicast addresses that can be used by an Entity with a specific topic name to receive data. More...
#include <CorePolicy.hpp>
Public Member Functions | |
MulticastMappingSeq | mappings () const |
Getter (see setter with the same name) More... | |
Specifies a list of topic_expressions and multicast addresses that can be used by an Entity with a specific topic name to receive data.
This QoS policy provides an alternate way to assign multicast receive addresses to DataReaders. It allows you to perform multicast configuration at the dds::domain::DomainParticipant level.
To use multicast communication without this QoS policy, you must explicitly assign a multicast receive address on each dds::sub::DataReader. This can quickly become difficult to configure as more DataReaders of different topics and multicast addresses are added.
With this QoS policy, you can configure a set of multicast addresses on the dds::domain::DomainParticipant; those addresses will then be automatically assigned to the DomainParticipant's DataReaders. A single configuration on the dds::domain::DomainParticipant can thus replace per-DataReader configuration.
On the DomainParticipant, the set of assignable addresses can be configured for specific topics. Addresses are configured on topics because efficient usage of multicast will have all DataWriters and DataReaders of a single topic using the same multicast address.
You can specify a mapping between a topic's name and a multicast address. For example, topic 'A' can be assigned to address 239.255.1.1 and topic 'B' can be assigned to address 239.255.1.2.
You can use filter expressions to configure a subset of topics to use a specific list of addresses. For example, suppose topics "X", "Y" and "Z" need to be sent to any address within the range [239.255.1.1, 239.255.1.255]. You can specify an expression on the topic name (e.g. "[X-Z]") corresponding to that range of addresses. Then the DomainParticipant will select an address for a topic whose name matches the expression.
The middleware will use a hash function to perform the mapping from topic to address. Alternatively, you can specify a pluggable mapping function.
IMPORTANT: All the strings defined in each element of the sequence must be assigned using RTI_String_dup("foo");. For example:
mcastMappingElement->addresses = DDS_String_dup("[239.255.1.1,239.255.1.255]");
NOTE: To use this QoS policy, you must:
MulticastMappingSeq rti::core::policy::TransportMulticastMapping::mappings | ( | ) | const |
Getter (see setter with the same name)