Fast DDS  Version 3.1.2
Fast DDS
Loading...
Searching...
No Matches
RTPSParticipantAttributes.hpp
1// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
19#ifndef FASTDDS_RTPS_ATTRIBUTES__RTPSPARTICIPANTATTRIBUTES_HPP
20#define FASTDDS_RTPS_ATTRIBUTES__RTPSPARTICIPANTATTRIBUTES_HPP
21
22#include <memory>
23#include <sstream>
24
25#include <fastcdr/cdr/fixed_size_string.hpp>
26
27#include <fastdds/rtps/attributes/BuiltinTransports.hpp>
28#include <fastdds/rtps/attributes/ExternalLocators.hpp>
29#include <fastdds/rtps/attributes/PropertyPolicy.hpp>
30#include <fastdds/rtps/attributes/ResourceManagement.hpp>
31#include <fastdds/rtps/attributes/RTPSParticipantAllocationAttributes.hpp>
32#include <fastdds/rtps/attributes/ThreadSettings.hpp>
33#include <fastdds/rtps/common/Locator.hpp>
34#include <fastdds/rtps/common/PortParameters.hpp>
35#include <fastdds/rtps/common/Time_t.hpp>
36#include <fastdds/rtps/common/Types.hpp>
37#include <fastdds/rtps/flowcontrol/FlowControllerDescriptor.hpp>
38#include <fastdds/rtps/transport/network/NetmaskFilterKind.hpp>
39#include <fastdds/rtps/transport/TransportInterface.hpp>
40#include <fastdds/fastdds_dll.hpp>
41
42namespace eprosima {
43namespace fastdds {
44namespace rtps {
45
50{
51 static constexpr const char* SIMPLE = "SIMPLE";
52 static constexpr const char* SERVER = "SERVER";
53 static constexpr const char* CLIENT = "CLIENT";
54 static constexpr const char* SUPER_CLIENT = "SUPER_CLIENT";
55 static constexpr const char* BACKUP = "BACKUP";
56 static constexpr const char* NONE = "NONE";
57 static constexpr const char* EXTERNAL = "EXTERNAL";
58 static constexpr const char* UNKNOWN = "UNKNOWN";
59};
60
61} // namespace rtps
62} // namespace fastdds
63
64namespace fastdds {
65namespace rtps {
66
69{
70 NONE,
76 SIMPLE,
86 CLIENT,
88 SERVER,
90 BACKUP,
95};
96
97inline std::ostream& operator <<(
98 std::ostream& output,
99 const DiscoveryProtocol& discovery_protocol)
100{
101 switch (discovery_protocol)
102 {
105 break;
108 break;
111 break;
114 break;
117 break;
120 break;
123 break;
124 default:
126 }
127 return output;
128}
129
136FASTDDS_EXPORTED_API bool get_server_client_default_guidPrefix(
137 int id,
139
140// Port used if the ros environment variable doesn't specify one
141constexpr uint16_t DEFAULT_ROS2_SERVER_PORT = 11811;
142// Port used by default for tcp transport
143constexpr uint16_t DEFAULT_TCP_SERVER_PORT = 42100;
144
153
154#define BUILTIN_DATA_MAX_SIZE 512
155
157class PDP;
158class BuiltinProtocols;
159
160typedef struct PDPFactory
161{
162 // Pointer to the PDP creator
163 PDP* (*CreatePDPInstance)(BuiltinProtocols*);
164 // Pointer to the PDP destructor
166 PDP*);
167
169 const struct PDPFactory& e) const
170 {
173 }
174
176
182{
183public:
184
187
190
191#if HAVE_SECURITY
192 bool enable_builtin_secure_publications_writer_and_subscriptions_reader;
193
194 bool enable_builtin_secure_subscriptions_writer_and_publications_reader;
195#endif // if HAVE_SECURITY
196
200#if HAVE_SECURITY
201 , enable_builtin_secure_publications_writer_and_subscriptions_reader(true)
202 , enable_builtin_secure_subscriptions_writer_and_publications_reader(true)
203#endif // if HAVE_SECURITY
204 {
205 }
206
208 const SimpleEDPAttributes& b) const
209 {
210 return (this->use_PublicationWriterANDSubscriptionReader == b.use_PublicationWriterANDSubscriptionReader) &&
211#if HAVE_SECURITY
212 (this->enable_builtin_secure_publications_writer_and_subscriptions_reader ==
213 b.enable_builtin_secure_publications_writer_and_subscriptions_reader) &&
214 (this->enable_builtin_secure_subscriptions_writer_and_publications_reader ==
215 b.enable_builtin_secure_subscriptions_writer_and_publications_reader) &&
216#endif // if HAVE_SECURITY
217 (this->use_PublicationReaderANDSubscriptionWriter == b.use_PublicationReaderANDSubscriptionWriter);
218 }
219
220};
221
227{
229 uint32_t count = 5u;
230
232 dds::Duration_t period = { 0, 100000000u };
233
235 const InitialAnnouncementConfig& b) const
236 {
237 return (count == b.count) && (period == b.period);
238 }
239
240};
241
248{
249public:
250
253
258
264
270
276
279
282
290 dds::Duration_t discoveryServer_client_syncperiod = { 0, 450 * 1000000}; // 450 milliseconds
291
294
297
298 DiscoverySettings() = default;
299
301 const DiscoverySettings& b) const
302 {
303 return (this->discoveryProtocol == b.discoveryProtocol) &&
304 (this->use_SIMPLE_EndpointDiscoveryProtocol == b.use_SIMPLE_EndpointDiscoveryProtocol) &&
305 (this->use_STATIC_EndpointDiscoveryProtocol == b.use_STATIC_EndpointDiscoveryProtocol) &&
306 (this->discoveryServer_client_syncperiod == b.discoveryServer_client_syncperiod) &&
307 (this->m_PDPfactory == b.m_PDPfactory) &&
308 (this->leaseDuration == b.leaseDuration) &&
309 (this->leaseDuration_announcementperiod == b.leaseDuration_announcementperiod) &&
310 (this->initial_announcements == b.initial_announcements) &&
311 (this->m_simpleEDP == b.m_simpleEDP) &&
312 (this->static_edp_xml_config_ == b.static_edp_xml_config_) &&
313 (this->m_DiscoveryServers == b.m_DiscoveryServers) &&
314 (this->ignoreParticipantFlags == b.ignoreParticipantFlags);
315 }
316
323 const char* str)
324 {
325 static_edp_xml_config_ = str;
326 }
327
333 const char* static_edp_xml_config() const
334 {
335 return static_edp_xml_config_.c_str();
336 }
337
338private:
339
342 std::string static_edp_xml_config_ = "";
343};
344
350{
351public:
352
355
358
361
364
367
370
373
376 MemoryManagementPolicy_t::PREALLOCATED_WITH_REALLOC_MEMORY_MODE;
377
379 uint32_t readerPayloadSize = BUILTIN_DATA_MAX_SIZE;
380
383 MemoryManagementPolicy_t::PREALLOCATED_WITH_REALLOC_MEMORY_MODE;
384
386 uint32_t writerPayloadSize = BUILTIN_DATA_MAX_SIZE;
387
389 uint32_t mutation_tries = 100u;
390
393
394 BuiltinAttributes() = default;
395
396 virtual ~BuiltinAttributes() = default;
397
399 const BuiltinAttributes& b) const
400 {
401 return (this->discovery_config == b.discovery_config) &&
402 (this->use_WriterLivelinessProtocol == b.use_WriterLivelinessProtocol) &&
403 (this->network_configuration == b.network_configuration) &&
404 (this->metatrafficUnicastLocatorList == b.metatrafficUnicastLocatorList) &&
405 (this->metatrafficMulticastLocatorList == b.metatrafficMulticastLocatorList) &&
406 (this->metatraffic_external_unicast_locators == b.metatraffic_external_unicast_locators) &&
407 (this->initialPeersList == b.initialPeersList) &&
408 (this->readerHistoryMemoryPolicy == b.readerHistoryMemoryPolicy) &&
409 (this->readerPayloadSize == b.readerPayloadSize) &&
410 (this->writerHistoryMemoryPolicy == b.writerHistoryMemoryPolicy) &&
411 (this->writerPayloadSize == b.writerPayloadSize) &&
412 (this->mutation_tries == b.mutation_tries) &&
413 (this->avoid_builtin_multicast == b.avoid_builtin_multicast);
414 }
415
416};
417
423{
424 using FlowControllerDescriptorList = std::vector<std::shared_ptr<fastdds::rtps::FlowControllerDescriptor>>;
425
426public:
427
429
430 virtual ~RTPSParticipantAttributes() = default;
431
433 const RTPSParticipantAttributes& b) const
434 {
435 return (this->name == b.name) &&
442 (this->netmaskFilter == b.netmaskFilter) &&
443 (this->builtin == b.builtin) &&
444 (this->port == b.port) &&
445 (this->userData == b.userData) &&
446 (this->participantID == b.participantID) &&
448 (this->properties == b.properties) &&
449 (this->prefix == b.prefix) &&
450 (this->flow_controllers == b.flow_controllers) &&
453#if HAVE_SECURITY
454 (this->security_log_thread == b.security_log_thread) &&
455#endif // if HAVE_SECURITY
459
460 }
461
469 FASTDDS_EXPORTED_API void setup_transports(
472
478
484
489
494
500
505
508
511
512 FASTDDS_EXPORTED_API inline bool ReadguidPrefix(
513 const char* pfx)
514 {
515 return bool(std::istringstream(pfx) >> prefix);
516 }
517
520
523
525 std::vector<octet> userData;
526
528 int32_t participantID = -1;
529
531 std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>> userTransports;
532
535
538
541
543 inline void setName(
544 const char* nam)
545 {
546 name = nam;
547 }
548
550 inline const char* getName() const
551 {
552 return name.c_str();
553 }
554
556 FlowControllerDescriptorList flow_controllers;
557
560
563
566
569
572
573#if HAVE_SECURITY
575 fastdds::rtps::ThreadSettings security_log_thread;
576#endif // if HAVE_SECURITY
577
583
584private:
585
587 fastcdr::string_255 name{"RTPSParticipant"};
588};
589
590} // namespace rtps
591} // namespace fastdds
592} // namespace eprosima
593
594#endif // FASTDDS_RTPS_ATTRIBUTES__RTPSPARTICIPANTATTRIBUTES_HPP
Class BuiltinAttributes, to define the behavior of the RTPSParticipant builtin protocols.
Definition RTPSParticipantAttributes.hpp:350
bool avoid_builtin_multicast
Set to true to avoid multicast traffic on builtin endpoints.
Definition RTPSParticipantAttributes.hpp:392
fastdds::rtps::ExternalLocators metatraffic_external_unicast_locators
The collection of external locators to use for communication on metatraffic topics.
Definition RTPSParticipantAttributes.hpp:369
MemoryManagementPolicy_t writerHistoryMemoryPolicy
Memory policy for builtin writers.
Definition RTPSParticipantAttributes.hpp:382
DiscoverySettings discovery_config
Discovery protocol related attributes.
Definition RTPSParticipantAttributes.hpp:354
LocatorList_t initialPeersList
Initial peers.
Definition RTPSParticipantAttributes.hpp:372
bool operator==(const BuiltinAttributes &b) const
Definition RTPSParticipantAttributes.hpp:398
LocatorList_t metatrafficUnicastLocatorList
Metatraffic Unicast Locator List.
Definition RTPSParticipantAttributes.hpp:363
MemoryManagementPolicy_t readerHistoryMemoryPolicy
Memory policy for builtin readers.
Definition RTPSParticipantAttributes.hpp:375
uint32_t readerPayloadSize
Maximum payload size for builtin readers.
Definition RTPSParticipantAttributes.hpp:379
bool use_WriterLivelinessProtocol
Indicates to use the WriterLiveliness protocol.
Definition RTPSParticipantAttributes.hpp:357
uint32_t writerPayloadSize
Maximum payload size for builtin writers.
Definition RTPSParticipantAttributes.hpp:386
LocatorList_t metatrafficMulticastLocatorList
Metatraffic Multicast Locator List.
Definition RTPSParticipantAttributes.hpp:366
uint32_t mutation_tries
Mutation tries if the port is being used.
Definition RTPSParticipantAttributes.hpp:389
NetworkConfigSet_t network_configuration
Network Configuration.
Definition RTPSParticipantAttributes.hpp:360
Class DiscoverySettings, to define the attributes of the several discovery protocols available.
Definition RTPSParticipantAttributes.hpp:248
SimpleEDPAttributes m_simpleEDP
Attributes of the SimpleEDP protocol.
Definition RTPSParticipantAttributes.hpp:281
const char * static_edp_xml_config() const
Get the static endpoint XML configuration.
Definition RTPSParticipantAttributes.hpp:333
ParticipantFilteringFlags ignoreParticipantFlags
Filtering participants out depending on location.
Definition RTPSParticipantAttributes.hpp:296
dds::Duration_t discoveryServer_client_syncperiod
The period for the RTPSParticipant to: send its Discovery Message to its servers check for EDP endpoi...
Definition RTPSParticipantAttributes.hpp:290
InitialAnnouncementConfig initial_announcements
Initial announcements configuration.
Definition RTPSParticipantAttributes.hpp:278
dds::Duration_t leaseDuration
Lease Duration of the RTPSParticipant, indicating how much time remote RTPSParticipants should consid...
Definition RTPSParticipantAttributes.hpp:269
void static_edp_xml_config(const char *str)
Set the static endpoint XML configuration.
Definition RTPSParticipantAttributes.hpp:322
bool operator==(const DiscoverySettings &b) const
Definition RTPSParticipantAttributes.hpp:300
dds::Duration_t leaseDuration_announcementperiod
The period for the RTPSParticipant to send its Discovery Message to all other discovered RTPSParticip...
Definition RTPSParticipantAttributes.hpp:275
bool use_STATIC_EndpointDiscoveryProtocol
If set to true, StaticEDP based on an XML file would be implemented.
Definition RTPSParticipantAttributes.hpp:263
bool use_SIMPLE_EndpointDiscoveryProtocol
If set to true, SimpleEDP would be used.
Definition RTPSParticipantAttributes.hpp:257
PDPFactory m_PDPfactory
function that returns a PDP object (only if EXTERNAL selected)
Definition RTPSParticipantAttributes.hpp:284
eprosima::fastdds::rtps::LocatorList m_DiscoveryServers
Discovery Server initial connections, needed if discoveryProtocol = CLIENT | SUPER_CLIENT | SERVER | ...
Definition RTPSParticipantAttributes.hpp:293
DiscoveryProtocol discoveryProtocol
Chosen discovery protocol.
Definition RTPSParticipantAttributes.hpp:252
Class LocatorList, a Locator vector that doesn't allow duplicates.
Definition LocatorList.hpp:97
Class PortParameters, to define the port parameters and gains related with the RTPS protocol.
Definition PortParameters.hpp:35
Definition PropertyPolicy.hpp:30
Class RTPSParticipantAttributes used to define different aspects of a RTPSParticipant.
Definition RTPSParticipantAttributes.hpp:423
LocatorList_t defaultUnicastLocatorList
Default list of Unicast Locators to be used for any Endpoint defined inside this RTPSParticipant in t...
Definition RTPSParticipantAttributes.hpp:477
int32_t participantID
Participant ID.
Definition RTPSParticipantAttributes.hpp:528
uint32_t sendSocketBufferSize
Send socket buffer size for the send resource.
Definition RTPSParticipantAttributes.hpp:499
fastdds::rtps::ExternalLocators default_external_unicast_locators
The collection of external locators to use for communication on user created topics.
Definition RTPSParticipantAttributes.hpp:488
FASTDDS_EXPORTED_API bool ReadguidPrefix(const char *pfx)
Definition RTPSParticipantAttributes.hpp:512
PropertyPolicy properties
Property policies.
Definition RTPSParticipantAttributes.hpp:540
fastdds::rtps::ThreadSettings discovery_server_thread
Thread settings for the discovery server thread.
Definition RTPSParticipantAttributes.hpp:565
FASTDDS_EXPORTED_API void setup_transports(fastdds::rtps::BuiltinTransports transports, const fastdds::rtps::BuiltinTransportsOptions &options=fastdds::rtps::BuiltinTransportsOptions())
Provides a way of easily configuring transport related configuration on certain pre-defined scenarios...
LocatorList_t defaultMulticastLocatorList
Default list of Multicast Locators to be used for any Endpoint defined inside this RTPSParticipant in...
Definition RTPSParticipantAttributes.hpp:483
bool ignore_non_matching_locators
Whether locators that don't match with the announced locators should be kept.
Definition RTPSParticipantAttributes.hpp:493
const char * getName() const
Get the name of the participant.
Definition RTPSParticipantAttributes.hpp:550
std::vector< std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > > userTransports
User defined transports to use alongside or in place of builtins.
Definition RTPSParticipantAttributes.hpp:531
RTPSParticipantAllocationAttributes allocation
Holds allocation limits affecting collections managed by a participant.
Definition RTPSParticipantAttributes.hpp:537
void setName(const char *nam)
Set the name of the participant.
Definition RTPSParticipantAttributes.hpp:543
uint32_t max_msg_size_no_frag
Maximum message size used to avoid fragmentation, set ONLY in LARGE_DATA.
Definition RTPSParticipantAttributes.hpp:582
bool useBuiltinTransports
Set as false to disable the creation of the default transports.
Definition RTPSParticipantAttributes.hpp:534
FlowControllerDescriptorList flow_controllers
Flow controllers.
Definition RTPSParticipantAttributes.hpp:556
fastdds::rtps::ThreadSettings builtin_controllers_sender_thread
Thread settings for the builtin flow controllers sender threads.
Definition RTPSParticipantAttributes.hpp:559
std::vector< octet > userData
User Data of the participant.
Definition RTPSParticipantAttributes.hpp:525
bool operator==(const RTPSParticipantAttributes &b) const
Definition RTPSParticipantAttributes.hpp:432
GuidPrefix_t prefix
Optionally allows user to define the GuidPrefix_t.
Definition RTPSParticipantAttributes.hpp:510
BuiltinAttributes builtin
Builtin parameters.
Definition RTPSParticipantAttributes.hpp:519
uint32_t listenSocketBufferSize
Listen socket buffer for all listen resources.
Definition RTPSParticipantAttributes.hpp:504
fastdds::rtps::ThreadSettings builtin_transports_reception_threads
Thread settings for the builtin transports reception threads.
Definition RTPSParticipantAttributes.hpp:571
fastdds::rtps::ThreadSettings typelookup_service_thread
Thread settings for the builtin TypeLookup service requests and replies threads.
Definition RTPSParticipantAttributes.hpp:568
fastdds::rtps::ThreadSettings timed_events_thread
Thread settings for the timed events thread.
Definition RTPSParticipantAttributes.hpp:562
fastdds::rtps::NetmaskFilterKind netmaskFilter
Netmask filter configuration.
Definition RTPSParticipantAttributes.hpp:507
PortParameters port
Port Parameters.
Definition RTPSParticipantAttributes.hpp:522
Class SimpleEDPAttributes, to define the attributes of the Simple Endpoint Discovery Protocol.
Definition RTPSParticipantAttributes.hpp:182
bool operator==(const SimpleEDPAttributes &b) const
Definition RTPSParticipantAttributes.hpp:207
bool use_PublicationWriterANDSubscriptionReader
Default value true.
Definition RTPSParticipantAttributes.hpp:186
SimpleEDPAttributes()
Definition RTPSParticipantAttributes.hpp:197
bool use_PublicationReaderANDSubscriptionWriter
Default value true.
Definition RTPSParticipantAttributes.hpp:189
std::ostream & operator<<(std::ostream &output, BuiltinTransports transports)
Definition BuiltinTransports.hpp:117
BuiltinTransports
Defines the kind of transports automatically instantiated upon the creation of a participant.
Definition BuiltinTransports.hpp:106
struct eprosima::fastdds::rtps::PDPFactory PDPFactory
NetmaskFilterKind
Definition NetmaskFilterKind.hpp:31
FASTDDS_EXPORTED_API bool get_server_client_default_guidPrefix(int id, fastdds::rtps::GuidPrefix_t &guid)
Returns the guidPrefix associated to the given server id.
std::map< uint8_t, std::map< uint8_t, std::vector< LocatorWithMask > >, std::greater< uint8_t > > ExternalLocators
A collection of LocatorWithMask grouped by externality and cost.
Definition ExternalLocators.hpp:34
enum eprosima::fastdds::rtps::MemoryManagementPolicy MemoryManagementPolicy_t
Enum MemoryuManagementPolicy_t, indicated the way memory is managed in terms of dealing with CacheCha...
uint32_t NetworkConfigSet_t
Definition Types.hpp:88
constexpr uint16_t DEFAULT_ROS2_SERVER_PORT
Definition RTPSParticipantAttributes.hpp:141
constexpr uint16_t DEFAULT_TCP_SERVER_PORT
Definition RTPSParticipantAttributes.hpp:143
DiscoveryProtocol
PDP subclass choice.
Definition RTPSParticipantAttributes.hpp:69
@ EXTERNAL
A user defined PDP subclass object must be provided in the attributes that deals with the discovery.
@ SERVER
The participant will behave as a server concerning discovery operation.
@ NONE
NO discovery whatsoever would be used.
@ BACKUP
The participant will behave as a server concerning discovery operation.
@ SIMPLE
Discovery works according to 'The Real-time Publish-Subscribe Protocol(RTPS) DDS Interoperability Wir...
@ SUPER_CLIENT
The participant will behave as a client concerning all internal behaviour.
@ CLIENT
The participant will behave as a client concerning discovery operation.
ParticipantFilteringFlags
Filtering flags when discovering participants.
Definition RTPSParticipantAttributes.hpp:147
@ FILTER_DIFFERENT_HOST
Definition RTPSParticipantAttributes.hpp:149
@ NO_FILTER
Definition RTPSParticipantAttributes.hpp:148
@ FILTER_SAME_PROCESS
Definition RTPSParticipantAttributes.hpp:151
@ FILTER_DIFFERENT_PROCESS
Definition RTPSParticipantAttributes.hpp:150
eProsima namespace.
Structure Time_t, used to describe times at a DDS level.
Definition Time_t.hpp:36
Options for configuring the built-in transports when using LARGE_DATA mode.
Definition BuiltinTransports.hpp:37
Structure GuidPrefix_t, Guid Prefix of GUID_t.
Definition GuidPrefix_t.hpp:37
Struct InitialAnnouncementConfig defines the behavior of the RTPSParticipant initial announcements.
Definition RTPSParticipantAttributes.hpp:227
dds::Duration_t period
Specific period for initial announcements (default 100ms)
Definition RTPSParticipantAttributes.hpp:232
bool operator==(const InitialAnnouncementConfig &b) const
Definition RTPSParticipantAttributes.hpp:234
uint32_t count
Number of initial announcements with specific period (default 5)
Definition RTPSParticipantAttributes.hpp:229
Definition RTPSParticipantAttributes.hpp:161
bool operator==(const struct PDPFactory &e) const
Definition RTPSParticipantAttributes.hpp:168
void(* ReleasePDPInstance)(PDP *)
Definition RTPSParticipantAttributes.hpp:165
PDP *(* CreatePDPInstance)(BuiltinProtocols *)
Definition RTPSParticipantAttributes.hpp:163
Struct to define participant types to set participant type parameter property.
Definition RTPSParticipantAttributes.hpp:50
static constexpr const char * SIMPLE
Definition RTPSParticipantAttributes.hpp:51
static constexpr const char * CLIENT
Definition RTPSParticipantAttributes.hpp:53
static constexpr const char * EXTERNAL
Definition RTPSParticipantAttributes.hpp:57
static constexpr const char * UNKNOWN
Definition RTPSParticipantAttributes.hpp:58
static constexpr const char * SUPER_CLIENT
Definition RTPSParticipantAttributes.hpp:54
static constexpr const char * SERVER
Definition RTPSParticipantAttributes.hpp:52
static constexpr const char * NONE
Definition RTPSParticipantAttributes.hpp:56
static constexpr const char * BACKUP
Definition RTPSParticipantAttributes.hpp:55
Holds allocation limits affecting collections managed by a participant.
Definition RTPSParticipantAllocationAttributes.hpp:129
Struct ThreadSettings to specify various thread settings.
Definition ThreadSettings.hpp:37