RTI Connext C API Version 7.3.0
|
Set of strings that introduces logical partitions in DDS_DomainParticipant, DDS_Publisher, or DDS_Subscriber entities. More...
Data Fields | |
struct DDS_StringSeq | name |
A list of partition names. More... | |
Set of strings that introduces logical partitions in DDS_DomainParticipant, DDS_Publisher, or DDS_Subscriber entities.
This QoS policy is used to set string identifiers that are used for partitioning entities that would otherwise be connected to and exchange data with each other:
The Partition QoS policy provides another way to control which entities will match-and thus communicate with-which other entities. It can be used to prevent entities that would have otherwise matched from talking to each other. Much in the same way that only applications within the same DDS domain will communicate with each other, only entities that belong to the same partition can talk to each other.
The Partition QoS policy allows you to add one or more strings, "partitions", to an entity:
Since the set of partitions for an entity can be dynamically changed, the Partition QoS policy is useful for creating temporary separation groups among entities that would otherwise be connected to and exchange data with each other.
DomainParticipant partitions and Publisher/Subscriber partitions are independent of each other. You can use both features independently or in combination to provide the right level of isolation.
Failure to match partitions is not considered an incompatible QoS and does not trigger any listeners or conditions. A change in this policy can potentially modify the "match" of existing DataReader and DataWriter entities. It may establish new "matches" that did not exist before, or break existing matches.
Partition strings are usually directly matched via string comparisons. However, partition strings can also contain wildcard symbols so that partitions can be matched via pattern matching. As long as the partitions or wildcard patterns of an entity intersect with the partitions or wildcard patterns of otherwise matching entities, the entities match; otherwise they do not.
These partition name patterns are regular expressions as defined by the POSIX fnmatch API (1003.2-1992 section B.6). A DDS_DomainParticipant, DDS_Publisher, or DDS_Subscriber entity may include regular expressions in partition names, but no two names that both contain wildcards will ever be considered to match. This means that although regular expressions may be used on the entities, RTI Connext will not try to match two regular expressions.
Each entity must belong to at least one logical partition. A regular expression is not considered to be a logical partition. If an entity has not specified a logical partition, it is assumed to be in the default partition. The default partition is defined to be an empty string (""). Put another way:
Partitions are different from creating DDS_Entity objects in different domains in several ways.
For more information, see the "PARTITION QosPolicy" section of the Core Libraries User's Manual.
struct DDS_StringSeq DDS_PartitionQosPolicy::name |
A list of partition names.
Several restrictions apply to the partition names in this sequence. A violation of one of the following rules will result in a DDS_RETCODE_INCONSISTENT_POLICY when setting a DDS_Publisher's or DDS_Subscriber's QoS.
The memory for the strings in this sequence is managed according to the conventions described in String Conventions. In particular, be careful to avoid a situation in which RTI Connext allocates a string on your behalf and you then reuse that string in such a way that RTI Connext believes it to have more memory allocated to it than it actually does.
[default] Empty sequence (zero-length sequence). Since no logical partition is specified, RTI Connext will assume the entity to be in default partition (empty string partition "").
[range] List of partition name with above restrictions