RTI Connext C API
Version 6.1.2
|
Various settings that configure how a DDS_DomainParticipant allocates and uses physical memory for internal resources, including the maximum sizes of various properties. More...
Various settings that configure how a DDS_DomainParticipant allocates and uses physical memory for internal resources, including the maximum sizes of various properties.
This QoS policy sets maximum size limits on variable-length parameters used by the participant and its contained Entities. It also controls the initial and maximum sizes of data structures used by the participant to store information about locally-created and remotely-discovered entities (such as DataWriters/DataReaders), as well as parameters used by the internal database to size the hash tables it uses.
By default, a DDS_DomainParticipant is allowed to dynamically allocate memory as needed as users create local Entities such as DDS_DataWriter and DDS_DataReader or as the participant discovers new applications to store their information. By setting fixed values for the maximum parameters in this QosPolicy, you can bound the memory that can be allocated by a DomainParticipant. In addition, by setting the initial values to the maximum values, you can reduce the amount of memory allocated by DomainParticipants after the initialization period. Notice that memory can still be allocated dynamically after the initialization period. For example, when a new local DDS_DataWriter or DDS_DataReader is created, the initial memory required for its queue is allocated dynamically.
The maximum sizes of different variable-length parameters such as the number of partitions that can be stored in the DDS_PartitionQosPolicy, the maximum length of data store in the DDS_UserDataQosPolicy and DDS_GroupDataQosPolicy, and many others can be changed from their defaults using this QoS policy. However, it is important that all DomainParticipants that need to communicate with each other use the same set of maximum values. Otherwise, when these parameters are propagated from one DDS_DomainParticipant to another, a DDS_DomainParticipant with a smaller maximum length may reject the parameter, resulting in an error.
An important parameter in this QoS policy that is often changed by users is DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length.
This QoS policy is an extension to the DDS standard.
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::local_writer_allocation |
Allocation settings applied to local DataWriters.
[default] initial_count = 16; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::local_reader_allocation |
Allocation settings applied to local DataReaders.
[default] initial_count = 16; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::local_publisher_allocation |
Allocation settings applied to local Publisher.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::local_subscriber_allocation |
Allocation settings applied to local Subscriber.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::local_topic_allocation |
Allocation settings applied to local Topic.
[default] initial_count = 16; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::remote_writer_allocation |
Allocation settings applied to remote DataWriters.
Remote DataWriters include all DataWriters, both local and remote.
[default] initial_count = 64; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::remote_reader_allocation |
Allocation settings applied to remote DataReaders.
Remote DataReaders include all DataReaders, both local and remote.
[default] initial_count = 64; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::remote_participant_allocation |
Allocation settings applied to remote DomainParticipants.
Remote DomainParticipants include all DomainParticipants, both local and remote.
[default] initial_count = 16; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::matching_writer_reader_pair_allocation |
Allocation settings applied to matching local writer and remote/local reader pairs.
[default] initial_count = 32; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::matching_reader_writer_pair_allocation |
Allocation settings applied to matching local reader and remote/local writer pairs.
[default] initial_count = 32; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::ignored_entity_allocation |
Allocation settings applied to ignored entities.
[default] initial_count = 8; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::content_filtered_topic_allocation |
Allocation settings applied to content filtered topic.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::content_filter_allocation |
Allocation settings applied to content filter.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::read_condition_allocation |
Allocation settings applied to read condition pool.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED, incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::query_condition_allocation |
Allocation settings applied to query condition pool.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED, incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::outstanding_asynchronous_sample_allocation |
Allocation settings applied to the maximum number of samples (from all DDS_DataWriter) waiting to be asynchronously written.
[default] initial_count = 64; max_count = DDS_LENGTH_UNLIMITED, incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::flow_controller_allocation |
Allocation settings applied to flow controllers.
[default] initial_count = 4; max_count = DDS_LENGTH_UNLIMITED, incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_writer_hash_buckets |
Hash_Buckets settings applied to local DataWriters.
[default] 4
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_reader_hash_buckets |
Number of hash buckets for local DataReaders.
[default] 4
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_publisher_hash_buckets |
Number of hash buckets for local Publisher.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_subscriber_hash_buckets |
Number of hash buckets for local Subscriber.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::local_topic_hash_buckets |
Number of hash buckets for local Topic.
[default] 4
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_writer_hash_buckets |
Number of hash buckets for remote DataWriters.
Remote DataWriters include all DataWriters, both local and remote.
[default] 16
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_reader_hash_buckets |
Number of hash buckets for remote DataReaders.
Remote DataReaders include all DataReaders, both local and remote.
[default] 16
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_participant_hash_buckets |
Number of hash buckets for remote DomainParticipants.
Remote DomainParticipants include all DomainParticipants, both local and remote.
[default] 4
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::matching_writer_reader_pair_hash_buckets |
Number of hash buckets for matching local writer and remote/local reader pairs.
[default] 32
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::matching_reader_writer_pair_hash_buckets |
Number of hash buckets for matching local reader and remote/local writer pairs.
[default] 32
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::ignored_entity_hash_buckets |
Number of hash buckets for ignored entities.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::content_filtered_topic_hash_buckets |
Number of hash buckets for content filtered topics.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::content_filter_hash_buckets |
Number of hash buckets for content filters.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::flow_controller_hash_buckets |
Number of hash buckets for flow controllers.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_gather_destinations |
Maximum number of destinations per RTI Connext send.
When RTI Connext sends out a message, it has the capability to send to multiple destinations to be more efficient. The maximum number of destinations per RTI Connext send is specified by max_gather_destinations.
[default] 16
[range] [16, 1 million]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::participant_user_data_max_length |
Maximum length of user data in DDS_DomainParticipantQos and DDS_ParticipantBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::topic_data_max_length |
Maximum length of topic data in DDS_TopicQos, DDS_TopicBuiltinTopicData, DDS_PublicationBuiltinTopicData and DDS_SubscriptionBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::publisher_group_data_max_length |
Maximum length of group data in DDS_PublisherQos and DDS_PublicationBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::subscriber_group_data_max_length |
Maximum length of group data in DDS_SubscriberQos and DDS_SubscriptionBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_user_data_max_length |
Maximum length of user data in DDS_DataWriterQos and DDS_PublicationBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_user_data_max_length |
Maximum length of user data in DDS_DataReaderQos and DDS_SubscriptionBuiltinTopicData.
[default] 256
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partitions |
Maximum number of partition name strings allowable in a DDS_PartitionQosPolicy.
This setting is made on a per DomainParticipant basis; it cannot be set individually on a per Publisher/Subscriber basis. However, the limit is enforced and applies per Publisher/Subscriber.
This value cannot exceed 64.
[default] 64
[range] [0,64]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_partition_cumulative_characters |
Maximum number of combined characters allowable in all partition names in a DDS_PartitionQosPolicy.
The maximum number of combined characters should account for a terminating NULL ('\0') character for each partition name string.
This setting is made on a per DomainParticipant basis; it cannot be set individually on a per Publisher/Subscriber basis. However, the limit is enforced and applies per Publisher/Subscriber.
This value cannot exceed 256.
[default] 256
[range] [0,256]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::type_code_max_serialized_length |
Maximum size of serialized string for type code.
This parameter is an alternative to DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length for limiting the size of the type code that a DDS_DomainParticipant is able to store and propagate for user data types. Type codes can be used by external applications to understand user data types without having the data type predefined in compiled form. However, since type codes contain all of the information of a data structure, including the strings that define the names of the members of a structure, complex data structures can result in large type codes. So it is common for users to set this parameter to a large value, if used (by default, it is set to 0). However, as with all parameters in this QoS policy defining maximum sizes for variable-length elements, all DomainParticipants in the same domain should use the same value for this parameter. Note: TypeObject is now the standard method of exchanging type information in RTI Connext. It is recommended to use DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length to configure the maximum serialized type object string.
[default] 0
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length |
The maximum length, in bytes, that the buffer to serialize a TypeObject can consume.
This parameter limits the size of the TypeObject that a DomainParticipant is able to propagate. Since TypeObjects contain all of the information of a data structure, including the strings that define the names of the members of a structure, complex data structures can result in TypeObjects larger than the default maximum of 8192 bytes. This field allows you to specify a larger value. The desired size for a given DDS_TypeCode can be obtained using DDS_TypeCode_get_type_object_serialized_size.
[default] 8192
[range] [0,0x7fffffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::serialized_type_object_dynamic_allocation_threshold |
A threshold, in bytes, for dynamic memory allocation for the serialized TypeObject.
Above this threshold, the memory for a TypeObject is allocated dynamically. Below it, the memory is obtained from a pool of fixed-size buffers. The size of the buffers is equal to this threshold.
In case DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length is different than DDS_LENGTH_UNLIMITED and is smaller than DDS_DomainParticipantResourceLimitsQosPolicy::serialized_type_object_dynamic_allocation_threshold: DDS_DomainParticipantResourceLimitsQosPolicy::serialized_type_object_dynamic_allocation_threshold will be adjusted to DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length.
[default] 8192
[range] [0,0x7fffffff] <= DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_serialized_length
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_deserialized_length |
The maximum number of bytes that a deserialized TypeObject can consume.
This parameter limits the size of the TypeObject that a DomainParticipant is able to store.
[default] DDS_LENGTH_UNLIMITED
[range] [0,0x7fffffff] or DDS_LENGTH_UNLIMITED
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::deserialized_type_object_dynamic_allocation_threshold |
A threshold, in bytes, for dynamic memory allocation for the deserialized TypeObject.
Above this threshold, the memory for a TypeObject is allocated dynamically. Below it, the memory is obtained from a pool of fixed-size buffers. The size of the buffers is equal to this threshold.
In case DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_deserialized_length is different than DDS_LENGTH_UNLIMITED and is smaller than DDS_DomainParticipantResourceLimitsQosPolicy::deserialized_type_object_dynamic_allocation_threshold: DDS_DomainParticipantResourceLimitsQosPolicy::deserialized_type_object_dynamic_allocation_threshold will be adjusted to DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_deserialized_length.
[default] 4096
[range] [0,0x7fffffff] <= DDS_DomainParticipantResourceLimitsQosPolicy::type_object_max_deserialized_length
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::contentfilter_property_max_length |
This field is the maximum length of all data related to a Content-filtered topic.
This is the sum of the length of the ContentFilteredTopic name, the length of the related topic name, the length of the filter expression, the length of the filter parameters, and the length of the filter name. The maximum number of combined characters should account for a terminating NULL ('\0') character for each string.
[default] 256
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::channel_seq_max_length |
Maximum number of channels that can be specified in DDS_MultiChannelQosPolicy for MultiChannel DataWriters.
[default] 32
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::channel_filter_expression_max_length |
Maximum length of a channel DDS_ChannelSettings_t::filter_expression in a MultiChannel DataWriter.
The length should account for a terminating NULL ('\0') character.
[default] 256
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::participant_property_list_max_length |
Maximum number of properties associated with the DDS_DomainParticipant.
[default] 32
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::participant_property_string_max_length |
Maximum string length of the properties associated with the DDS_DomainParticipant.
The string length is defined as the cumulative length in bytes, including the null terminating characters, of all the pairs (name, value) associated with the DDS_DomainParticipant properties.
[default] 2048
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_property_list_max_length |
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_property_string_max_length |
Maximum string length of the properties associated with a DDS_DataWriter.
The string length is defined as the cumulative length in bytes, including the null terminating characters, of all the pairs (name, value) associated with the DDS_DataWriter properties.
[default] 1024
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_property_list_max_length |
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_property_string_max_length |
Maximum string length of the properties associated with a DDS_DataReader.
The string length is defined as the cumulative length in bytes, including the null terminating characters, of all the pairs (name, value) associated with a DDS_DataReader properties.
[default] 1024
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_endpoint_groups |
Maximum number of DDS_EndpointGroup_t allowable in a DDS_AvailabilityQosPolicy.
[default] 32
[range] [0,65535]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::max_endpoint_group_cumulative_characters |
Maximum number of combined role_name characters allowed in all DDS_EndpointGroup_t in a DDS_AvailabilityQosPolicy.
The maximum number of combined characters should account for a terminating NULL character for each role_name string.
[default] 1024
[range] [0,65535]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::transport_info_list_max_length |
Maximum number of installed transports to send and receive information about in DDS_ParticipantBuiltinTopicData::transport_info.
[default] 6
[range] [0,100]
DDS_DomainParticipantResourceLimitsIgnoredEntityReplacementKind DDS_DomainParticipantResourceLimitsQosPolicy::ignored_entity_replacement_kind |
Replacement policy for the ignored entities. It sets what entity can be replaced when resource limits set in DDS_DomainParticipantResourceLimitsQosPolicy::ignored_entity_allocation are reached.
When a DDS_DomainParticipant's number of ignored entities is greater than DDS_DomainParticipantResourceLimitsQosPolicy::ignored_entity_allocation, the DDS_DomainParticipant will try to make room by replacing an existing ignored participant entry. This field specifies what entity is allowed to be replaced.
If a replaceable participant entry is not available, an out-of-resources exception will be returned.
struct DDS_AllocationSettings_t DDS_DomainParticipantResourceLimitsQosPolicy::remote_topic_query_allocation |
Allocation settings applied to remote TopicQueries.
Settings applied to the allocation of information about DDS_TopicQuery objects created by other participants and discovered by this participant.
When the participant receives a new topic query that would make the current count go above max_count
, it is not processed until the current count drops (i.e. another topic query is cancelled). The topic query stays in the Built-in ServiceRequest DataReader queue until it can be processed or it is cancelled.
[default] initial_count = 1; max_count = DDS_LENGTH_UNLIMITED; incremental_count = -1
[range] See allowed ranges in struct DDS_AllocationSettings_t
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::remote_topic_query_hash_buckets |
Number of hash buckets for remote TopicQueries.
[default] 1
[range] [1, 10000]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_data_tag_list_max_length |
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::writer_data_tag_string_max_length |
Maximum string length of the data tags associated with a DDS_DataWriter.
The string length is defined as the cumulative length in bytes, including the null terminating characters, of all the pairs (name, value) associated with the DDS_DataWriter data tags.
[default] 0
[range] [0,0xffff]
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_data_tag_list_max_length |
DDS_Long DDS_DomainParticipantResourceLimitsQosPolicy::reader_data_tag_string_max_length |
Maximum string length of the data tags associated with a DDS_DataReader.
The string length is defined as the cumulative length in bytes, including the null terminating characters, of all the pairs (name, value) associated with the DDS_DataReader data tags.
[default] 0
[range] [0,0xffff]
DDS_UnsignedLong DDS_DomainParticipantResourceLimitsQosPolicy::shmem_ref_transfer_mode_max_segments |
Maximum number of segments created by all DataWriters belonging to a DDS_DomainParticipant.
[default] 500
[range] [0,0xffffffff], but in practice, this value will be limited by the system-wide maximum number of shared memory segments. On a Linux machine, this value is provided by the kernel parameter shmmni.