RTI Connext Modern C++ API Version 7.3.0
rti::core::policy::SystemResourceLimits Class Reference

<<extension>> Configures resources that RTI Connext uses More...

#include <rti/core/policy/CorePolicy.hpp>

Public Member Functions

 SystemResourceLimits ()
 Creates a SystemResourceLimits qos policy with default values. More...
 
 SystemResourceLimits (int32_t the_max_objects_per_thread)
 Creates a SystemResourceLimits qos policy with the provided max_objects_per_thread and set initial_objects_per_thread accordingly. More...
 
 SystemResourceLimits (int32_t the_max_objects_per_thread, int32_t the_initial_objects_per_thread)
 Creates a SystemResourceLimits qos policy with the provided max_objects_per_thread and initial_objects_per_thread. More...
 
SystemResourceLimitsmax_objects_per_thread (int32_t the_max_objects_per_thread)
 Sets the maximum number of objects that can be stored per thread. More...
 
SystemResourceLimitsinitial_objects_per_thread (int32_t the_initial_objects_per_thread)
 Sets the initial number of objects that can be stored per thread. More...
 
int32_t max_objects_per_thread () const
 Getter (see setter with the same name) More...
 
int32_t initial_objects_per_thread () const
 Getter (see setter with the same name) More...
 

Detailed Description

<<extension>> Configures resources that RTI Connext uses

Entity:
DomainParticipantFactory
Properties:
RxO = N/A
Changeable = NO

Usage

Within a single process (or address space for some supported real-time operating systems), applications may create and use multiple dds::domain::DomainParticipant entities. This QoS policy sets a parameter that places an effective upper bound on the maximum number of dds::domain::DomainParticipant entities that can be created in a single process/address space. These values cannot be changed after a DomainParticipant has been created and they cannot be set in a QoS XML file.

Constructor & Destructor Documentation

◆ SystemResourceLimits() [1/3]

rti::core::policy::SystemResourceLimits::SystemResourceLimits ( )
inline

Creates a SystemResourceLimits qos policy with default values.

◆ SystemResourceLimits() [2/3]

rti::core::policy::SystemResourceLimits::SystemResourceLimits ( int32_t  the_max_objects_per_thread)
inlineexplicit

Creates a SystemResourceLimits qos policy with the provided max_objects_per_thread and set initial_objects_per_thread accordingly.

◆ SystemResourceLimits() [3/3]

rti::core::policy::SystemResourceLimits::SystemResourceLimits ( int32_t  the_max_objects_per_thread,
int32_t  the_initial_objects_per_thread 
)
inline

Creates a SystemResourceLimits qos policy with the provided max_objects_per_thread and initial_objects_per_thread.

Member Function Documentation

◆ max_objects_per_thread() [1/2]

SystemResourceLimits & rti::core::policy::SystemResourceLimits::max_objects_per_thread ( int32_t  the_max_objects_per_thread)

Sets the maximum number of objects that can be stored per thread.

This value is the upper bound on the number of objects that can be stored per thread. When a DomainParticipantFactory is created, infrastructure will be created to manage the number of objects specified by initial_objects_per_thread. As more objects are required by the application, the infrastructure will be automatically grown to accommodate up to max_objects_per_thread objects. Leave this property set to the default value to allow the infrastructure to grow as needed. If you wish to strictly control memory allocation, set max_objects_per_thread to a smaller value, but note that this runs the risk of a runtime error and reduced application functionality if your limit is reached.

[default] 261120

[range] [1, 261120]

◆ initial_objects_per_thread() [1/2]

SystemResourceLimits & rti::core::policy::SystemResourceLimits::initial_objects_per_thread ( int32_t  the_initial_objects_per_thread)

Sets the initial number of objects that can be stored per thread.

The infrastructure for managing thread-specific objects will initially be sized according to this value. The infrastructure will grow automatically, up to a maximum of max_objects_per_thread, as required by the application at runtime. If you are certain that more than the default value of initial_objects_per_thread will be required for your application and you wish to reduce the number of memory allocations performed while your application reaches steady state, you may set this value to a larger number. To improve the efficiency of memory allocation, RTI Connext may initially size the infrastructure to a larger value than the value of initial_objects_per_thread. The infrastructure will never be sized less than initial_objects_per_thread or greater than max_objects_per_thread. When the infrastructure for managing thread-specific objects is created or increased, a log message stating "Allowed number of thread specific objects is now " will be produced at the local log level.

[default] 1024

[range] [1, 261120]; must be less than or equal to max_objects_per_thread

◆ max_objects_per_thread() [2/2]

int32_t rti::core::policy::SystemResourceLimits::max_objects_per_thread ( ) const

Getter (see setter with the same name)

◆ initial_objects_per_thread() [2/2]

int32_t rti::core::policy::SystemResourceLimits::initial_objects_per_thread ( ) const

Getter (see setter with the same name)