|A sequence of multicast communication mappings. |
This QoS policy provides an alternate way to assign multicast receive addresses to DataReaders. It allows you to perform multicast configuration at the DDSDomainParticipant level.
To use multicast communication without this QoS policy, you must explicitly assign a multicast receive address on each DDSDataReader. 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 DDSDomainParticipant; those addresses will then be automatically assigned to the DomainParticipant's DataReaders. A single configuration on the DDSDomainParticipant 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 126.96.36.199 and topic 'B' can be assigned to address 188.8.131.52.
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 [184.108.40.206, 220.127.116.11]. 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("[18.104.22.168,22.214.171.124]");
A sequence of multicast communication mappings.
[default] Empty sequence.