Fast DDS  Version 3.6.1.0
Fast DDS
Loading...
Searching...
No Matches
QosPolicies.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
20#ifndef FASTDDS_DDS_CORE_POLICY__QOSPOLICIES_HPP
21#define FASTDDS_DDS_CORE_POLICY__QOSPOLICIES_HPP
22
23#include <bitset>
24#include <vector>
25
26#include <fastdds/dds/core/detail/DDSReturnCode.hpp>
27#include <fastdds/dds/core/policy/ParameterTypes.hpp>
28#include <fastdds/dds/core/Types.hpp>
29#include <fastdds/dds/xtypes/type_representation/detail/dds_xtypes_typeobject.hpp>
30#include <fastdds/rtps/attributes/ExternalLocators.hpp>
31#include <fastdds/rtps/attributes/PropertyPolicy.hpp>
32#include <fastdds/rtps/attributes/ResourceManagement.hpp>
33#include <fastdds/rtps/attributes/RTPSParticipantAllocationAttributes.hpp>
34#include <fastdds/rtps/attributes/RTPSParticipantAttributes.hpp>
35#include <fastdds/rtps/attributes/ThreadSettings.hpp>
36#include <fastdds/rtps/common/LocatorList.hpp>
37#include <fastdds/rtps/common/Time_t.hpp>
38#include <fastdds/rtps/common/Types.hpp>
39#include <fastdds/rtps/flowcontrol/FlowControllerConsts.hpp>
40#include <fastdds/rtps/transport/network/NetmaskFilterKind.hpp>
41
42#include <fastdds/utils/collections/ResourceLimitedVector.hpp>
43
44namespace eprosima {
45namespace fastdds {
46namespace dds {
47
55enum QosPolicyId_t : uint32_t
56{
57 INVALID_QOS_POLICY_ID = 0, //< Does not refer to any valid QosPolicy
58
59 // Standard QosPolicies
60 USERDATA_QOS_POLICY_ID = 1, //< UserDataQosPolicy
61 DURABILITY_QOS_POLICY_ID = 2, //< DurabilityQosPolicy
62 PRESENTATION_QOS_POLICY_ID = 3, //< PresentationQosPolicy
63 DEADLINE_QOS_POLICY_ID = 4, //< DeadlineQosPolicy
64 LATENCYBUDGET_QOS_POLICY_ID = 5, //< LatencyBudgetQosPolicy
65 OWNERSHIP_QOS_POLICY_ID = 6, //< OwnershipQosPolicy
66 OWNERSHIPSTRENGTH_QOS_POLICY_ID = 7, //< OwnershipStrengthQosPolicy
67 LIVELINESS_QOS_POLICY_ID = 8, //< LivelinessQosPolicy
68 TIMEBASEDFILTER_QOS_POLICY_ID = 9, //< TimeBasedFilterQosPolicy
69 PARTITION_QOS_POLICY_ID = 10, //< PartitionQosPolicy
70 RELIABILITY_QOS_POLICY_ID = 11, //< ReliabilityQosPolicy
71 DESTINATIONORDER_QOS_POLICY_ID = 12, //< DestinationOrderQosPolicy
72 HISTORY_QOS_POLICY_ID = 13, //< HistoryQosPolicy
73 RESOURCELIMITS_QOS_POLICY_ID = 14, //< ResourceLimitsQosPolicy
74 ENTITYFACTORY_QOS_POLICY_ID = 15, //< EntityFactoryQosPolicy
75 WRITERDATALIFECYCLE_QOS_POLICY_ID = 16, //< WriterDataLifecycleQosPolicy
76 READERDATALIFECYCLE_QOS_POLICY_ID = 17, //< ReaderDataLifecycleQosPolicy
77 TOPICDATA_QOS_POLICY_ID = 18, //< TopicDataQosPolicy
78 GROUPDATA_QOS_POLICY_ID = 19, //< GroupDataQosPolicy
79 TRANSPORTPRIORITY_QOS_POLICY_ID = 20, //< TransportPriorityQosPolicy
80 LIFESPAN_QOS_POLICY_ID = 21, //< LifespanQosPolicy
81 DURABILITYSERVICE_QOS_POLICY_ID = 22, //< DurabilityServiceQosPolicy
82
83 //XTypes extensions
84 DATAREPRESENTATION_QOS_POLICY_ID = 23, //< DataRepresentationQosPolicy
85 TYPECONSISTENCYENFORCEMENT_QOS_POLICY_ID = 24, //< TypeConsistencyEnforcementQosPolicy
86
87 //eProsima Extensions
88 DISABLEPOSITIVEACKS_QOS_POLICY_ID = 25, //< DisablePositiveACKsQosPolicy
89 PARTICIPANTRESOURCELIMITS_QOS_POLICY_ID = 26, //< ParticipantResourceLimitsQos
90 PROPERTYPOLICY_QOS_POLICY_ID = 27, //< PropertyPolicyQos
91 PUBLISHMODE_QOS_POLICY_ID = 28, //< PublishModeQosPolicy
92 READERRESOURCELIMITS_QOS_POLICY_ID = 29, //< Reader ResourceLimitsQos
93 RTPSENDPOINT_QOS_POLICY_ID = 30, //< RTPSEndpointQos
94 RTPSRELIABLEREADER_QOS_POLICY_ID = 31, //< RTPSReliableReaderQos
95 RTPSRELIABLEWRITER_QOS_POLICY_ID = 32, //< RTPSReliableWriterQos
96 TRANSPORTCONFIG_QOS_POLICY_ID = 33, //< TransportConfigQos
97 TYPECONSISTENCY_QOS_POLICY_ID = 34, //< TipeConsistencyQos
98 WIREPROTOCOLCONFIG_QOS_POLICY_ID = 35, //< WireProtocolConfigQos
99 WRITERRESOURCELIMITS_QOS_POLICY_ID = 36, //< WriterResourceLimitsQos
100
101 NEXT_QOS_POLICY_ID //< Keep always the last element. For internal use only
102};
103
104using PolicyMask = std::bitset<NEXT_QOS_POLICY_ID>;
105
109FASTDDS_TODO_BEFORE(4, 0, "Remove 'hasChanged' and 'send_always_' as they were replaced by 'should_be_sent'.");
111{
112public:
113
116
121 : hasChanged(false)
122 , send_always_(false)
123 {
124 }
125
131 explicit QosPolicy(
132 bool send_always)
133 : hasChanged(false)
135 {
136 }
137
144 const QosPolicy& b) = default;
145
149 virtual ~QosPolicy() = default;
150
152 const QosPolicy& b) const
153 {
154 // hasChanged field isn't needed to be compared to being equal two QosPolicy objects.
155 return (this->send_always_ == b.send_always_);
156 }
157
159 const QosPolicy& b) = default;
160
166 virtual bool send_always() const
167 {
168 return send_always_;
169 }
170
174 virtual inline void clear() = 0;
175
176protected:
177
180};
181
189{
190public:
191
198
202 FASTDDS_EXPORTED_API EntityFactoryQosPolicy()
204 {
205 }
206
212 FASTDDS_EXPORTED_API EntityFactoryQosPolicy(
213 bool autoenable)
214 : autoenable_created_entities(autoenable)
215 {
216 }
217
221 virtual FASTDDS_EXPORTED_API ~EntityFactoryQosPolicy()
222 {
223 }
224
226 const EntityFactoryQosPolicy& b) const
227 {
228 return
229 (this->autoenable_created_entities == b.autoenable_created_entities);
230 }
231
232 inline void clear()
233 {
235 std::swap(*this, reset);
236 }
237
238};
239
268
269#define PARAMETER_KIND_LENGTH 4
270#define PARAMETER_BOOL_LENGTH 4
271
278{
279public:
280
284 FASTDDS_EXPORTED_API DurabilityQosPolicy()
285 : Parameter_t(PID_DURABILITY, PARAMETER_KIND_LENGTH)
286 , QosPolicy(true)
288 {
289 }
290
294 virtual FASTDDS_EXPORTED_API ~DurabilityQosPolicy() = default;
295
312
314 const DurabilityQosPolicy& b) const
315 {
316 return (this->kind == b.kind) &&
319 }
320
326 inline void durabilityKind(
327 const fastdds::rtps::DurabilityKind_t new_kind)
328 {
329 switch (new_kind)
330 {
331 default:
336 }
337
338 }
339
340 inline void clear() override
341 {
343 std::swap(*this, reset);
344 }
345
346public:
347
353};
354
363{
364public:
365
369 FASTDDS_EXPORTED_API DeadlineQosPolicy()
371 , QosPolicy(true)
372 , period(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
373 {
374 }
375
379 virtual FASTDDS_EXPORTED_API ~DeadlineQosPolicy() = default;
380
382 const DeadlineQosPolicy& b) const
383 {
384 return (this->period == b.period) &&
387 }
388
389 inline void clear() override
390 {
392 std::swap(*this, reset);
393 }
394
395public:
396
404};
405
416{
417public:
418
422 FASTDDS_EXPORTED_API LatencyBudgetQosPolicy()
424 , QosPolicy(true)
425 , duration(0, 0)
426 {
427 }
428
432 virtual FASTDDS_EXPORTED_API ~LatencyBudgetQosPolicy() = default;
433
435 const LatencyBudgetQosPolicy& b) const
436 {
437 return (this->duration == b.duration) &&
440 }
441
442 inline void clear() override
443 {
445 std::swap(*this, reset);
446 }
447
448public:
449
452};
453
474
488{
489public:
490
494 FASTDDS_EXPORTED_API LivelinessQosPolicy()
495 : Parameter_t(PID_LIVELINESS, PARAMETER_KIND_LENGTH + PARAMETER_TIME_LENGTH)
496 , QosPolicy(true)
498 , lease_duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
499 , announcement_period(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
500 {
501 }
502
506 virtual FASTDDS_EXPORTED_API ~LivelinessQosPolicy() = default;
507
509 const LivelinessQosPolicy& b) const
510 {
511 return (this->kind == b.kind) &&
512 (this->lease_duration == b.lease_duration) &&
516 }
517
518 inline void clear() override
519 {
521 std::swap(*this, reset);
522 }
523
524public:
525
542};
543
563
570{
571public:
572
576 FASTDDS_EXPORTED_API ReliabilityQosPolicy()
577 : Parameter_t(PID_RELIABILITY, PARAMETER_KIND_LENGTH + PARAMETER_TIME_LENGTH)
578 , QosPolicy(true) //indicate send always
580 , max_blocking_time{0, 100000000} // max_blocking_time = 100ms
581 {
582 }
583
587 virtual FASTDDS_EXPORTED_API ~ReliabilityQosPolicy() = default;
588
590 const ReliabilityQosPolicy& b) const
591 {
592 return (this->kind == b.kind) &&
594 Parameter_t::operator ==(b) &&
596 }
597
598 inline void clear() override
599 {
601 std::swap(*this, reset);
602 }
603
604public:
605
611
623};
624
625
626
644
652{
653public:
654
658 FASTDDS_EXPORTED_API OwnershipQosPolicy()
659 : Parameter_t(PID_OWNERSHIP, PARAMETER_KIND_LENGTH)
660 , QosPolicy(true)
662 {
663 }
664
668 virtual FASTDDS_EXPORTED_API ~OwnershipQosPolicy() = default;
669
671 const OwnershipQosPolicy& b) const
672 {
673 return (this->kind == b.kind) &&
676 }
677
678 inline void clear() override
679 {
681 std::swap(*this, reset);
682 }
683
684public:
685
688};
689
707
708
709
719{
720public:
721
725 FASTDDS_EXPORTED_API DestinationOrderQosPolicy()
726 : Parameter_t(PID_DESTINATION_ORDER, PARAMETER_KIND_LENGTH)
727 , QosPolicy(true)
729 {
730 }
731
735 virtual FASTDDS_EXPORTED_API ~DestinationOrderQosPolicy() = default;
736
738 const DestinationOrderQosPolicy& b) const
739 {
740 return (this->kind == b.kind) &&
743 }
744
745 inline void clear() override
746 {
748 std::swap(*this, reset);
749 }
750
751public:
752
755};
756
757
762 public fastdds::ResourceLimitedVector<fastdds::rtps::octet>
763{
764 using ResourceLimitedOctetVector = fastdds::ResourceLimitedVector<fastdds::rtps::octet>;
765
766public:
767
768 FASTDDS_EXPORTED_API GenericDataQosPolicy(
769 ParameterId_t pid)
770 : Parameter_t(pid, 0)
771 , QosPolicy(false)
772 , ResourceLimitedOctetVector()
773 {
774 }
775
776 FASTDDS_EXPORTED_API GenericDataQosPolicy(
777 ParameterId_t pid,
778 uint16_t in_length)
779 : Parameter_t(pid, in_length)
780 , QosPolicy(false)
781 , ResourceLimitedOctetVector()
782 {
783 }
784
793 FASTDDS_EXPORTED_API GenericDataQosPolicy(
796 , QosPolicy(false)
797 , ResourceLimitedOctetVector(data)
798 {
799 }
800
810 FASTDDS_EXPORTED_API GenericDataQosPolicy(
811 ParameterId_t pid,
812 const collection_type& data)
813 : Parameter_t(pid, 0)
814 , QosPolicy(false)
815 , ResourceLimitedOctetVector()
816 {
817 assign(data.begin(), data.end());
818 length = static_cast<uint16_t>((size() + 7u) & ~3u);
819 }
820
821 virtual FASTDDS_EXPORTED_API ~GenericDataQosPolicy() = default;
822
835 const collection_type& b)
836 {
837 if (collection_ != b)
838 {
839 //If the object is size limited, already has max_size() allocated
840 //assign() will always stop copying when reaching max_size()
841 assign(b.begin(), b.end());
842 length = static_cast<uint16_t>((size() + 7u) & ~3u);
843 hasChanged = true;
844 }
845 return *this;
846 }
847
858 const GenericDataQosPolicy& b)
859 {
861 Parameter_t::operator =(b);
863 collection_.reserve(b.collection_.capacity());
864 collection_.assign(b.collection_.begin(), b.collection_.end());
865 return *this;
866 }
867
869 const GenericDataQosPolicy& b) const
870 {
871 return collection_ == b.collection_ &&
874 }
875
877 const collection_type& b) const
878 {
879 return collection_ == b;
880 }
881
900
901 void resize(
902 size_t new_size)
903 {
904 collection_.resize(new_size);
905 }
906
910 inline const collection_type& dataVec() const
911 {
912 return collection_;
913 }
914
915 inline void clear() override
916 {
918 hasChanged = false;
919 }
920
926 FASTDDS_EXPORTED_API inline const collection_type& data_vec() const
927 {
928 return collection_;
929 }
930
936 FASTDDS_EXPORTED_API inline collection_type& data_vec()
937 {
938 return collection_;
939 }
940
946 FASTDDS_EXPORTED_API inline void data_vec(
947 const collection_type& vec)
948 {
949 if (collection_ != vec)
950 {
951 assign(vec.begin(), vec.end());
952 length = static_cast<uint16_t>((size() + 7u) & ~3u);
953 hasChanged = true;
954 }
955 }
956
962 FASTDDS_EXPORTED_API inline const collection_type& getValue() const
963 {
964 return collection_;
965 }
966
972 FASTDDS_EXPORTED_API inline void setValue(
973 const collection_type& vec)
974 {
975 data_vec(vec);
976 }
977
978};
979
987// *INDENT-OFF* (uncrustify seems to have problems with this macro)
988#define TEMPLATE_DATA_QOS_POLICY(TClassName, TPid) \
989 class TClassName : public GenericDataQosPolicy \
990 { \
991 public: \
992 \
993 FASTDDS_EXPORTED_API TClassName() \
994 : GenericDataQosPolicy(TPid) \
995 { \
996 } \
997 \
998 FASTDDS_EXPORTED_API TClassName( \
999 uint16_t in_length) \
1000 : GenericDataQosPolicy(TPid, in_length) \
1001 { \
1002 } \
1003 \
1004 \
1012 FASTDDS_EXPORTED_API TClassName( \
1013 const TClassName &data) = default; \
1014 \
1015 \
1023 FASTDDS_EXPORTED_API TClassName( \
1024 const collection_type &data) \
1025 : GenericDataQosPolicy(TPid, data) \
1026 { \
1027 } \
1028 \
1029 virtual FASTDDS_EXPORTED_API ~TClassName() = default; \
1030 \
1031 \
1040 TClassName& operator =( \
1041 const TClassName& b) = default; \
1042 };
1043// *INDENT-ON*
1044
1045//Variable used to generate the doxygen documentation for this QoS Policies
1046#ifdef DOXYGEN_DOCUMENTATION
1057class UserDataQosPolicy : public GenericDataQosPolicy
1058{
1059};
1070class TopicDataQosPolicy : public GenericDataQosPolicy
1071{
1072};
1081 * implement matching policies similar to those of the PARTITION QoS except the decision can be made based on an
1082 * application-defined policy.
1083 */
1084class GroupDataQosPolicy : public GenericDataQosPolicy
1085{
1086};
1087#endif // DOXYGEN_DOCUMENTATION
1089TEMPLATE_DATA_QOS_POLICY(UserDataQosPolicy, PID_USER_DATA)
1090TEMPLATE_DATA_QOS_POLICY(TopicDataQosPolicy, PID_TOPIC_DATA)
1091TEMPLATE_DATA_QOS_POLICY(GroupDataQosPolicy, PID_GROUP_DATA)
1092
1093
1094
1101 * @note Mutable Qos Policy
1102 */
1103class TimeBasedFilterQosPolicy : public Parameter_t, public QosPolicy
1104{
1105public:
1106
1107
1108 * @brief Constructor
1109 */
1110 FASTDDS_EXPORTED_API TimeBasedFilterQosPolicy()
1112 , QosPolicy(false)
1113 , minimum_separation(0, 0)
1114 {
1115 }
1116
1119
1120 virtual FASTDDS_EXPORTED_API ~TimeBasedFilterQosPolicy() = default;
1121
1122 bool operator ==(
1124 {
1125 return (this->minimum_separation == b.minimum_separation) &&
1128 }
1129
1130 inline void clear() override
1131 {
1133 std::swap(*this, reset);
1134 }
1136public:
1137
1139 fastdds::dds::Duration_t minimum_separation;
1140};
1141
1146{
1155 * DataWriter (or DataReader).
1156 */
1163
1164#define PARAMETER_PRESENTATION_LENGTH 8
1165
1170
1177class PresentationQosPolicy : public Parameter_t, public QosPolicy
1178{
1179public:
1180
1184 FASTDDS_EXPORTED_API PresentationQosPolicy()
1185 : Parameter_t(PID_PRESENTATION, PARAMETER_PRESENTATION_LENGTH)
1186 , QosPolicy(false)
1188 , coherent_access(false)
1189 , ordered_access(false)
1190 {
1191 }
1192
1196 virtual FASTDDS_EXPORTED_API ~PresentationQosPolicy() = default;
1197
1198 bool operator ==(
1199 const PresentationQosPolicy& b) const
1200 {
1201 return (this->access_scope == b.access_scope) &&
1202 (this->coherent_access == b.coherent_access) &&
1203 (this->ordered_access == b.ordered_access) &&
1206 }
1208 inline void clear() override
1209 {
1211 std::swap(*this, reset);
1212 }
1213
1214public:
1215
1223 bool coherent_access;
1229 bool ordered_access;
1230};
1231
1232
1233class Partition_t
1235
1236 friend class PartitionQosPolicy;
1237
1238private:
1239
1240 const char* partition_;
1241
1242private:
1243
1244 Partition_t()
1245 {
1246 partition_ = nullptr;
1248
1249public:
1250
1252
1256 explicit Partition_t(
1257 const void* ptr)
1259 partition_ = (char*)ptr;
1260 }
1261
1262 bool operator ==(
1263 const Partition_t& rhs) const
1264 {
1265 return (size() == rhs.size() &&
1266 (size() == 0 || strcmp(partition_ + 4, rhs.partition_ + 4)));
1267 }
1269 bool operator !=(
1270 const Partition_t& rhs) const
1271 {
1272 return !(*this == rhs);
1273 }
1274
1280 uint32_t size() const
1281 {
1282 return *(uint32_t*)partition_;
1283 }
1284
1285 /**
1286 * @brief Getter for the partition name
1287 *
1288 * @return name
1290 const char* name() const
1291 {
1292 return partition_ + 4;
1305 * @note Mutable Qos Policy
1306 */
1307class PartitionQosPolicy : public Parameter_t, public QosPolicy
1308{
1309public:
1310
1311 class const_iterator
1313 public:
1314
1315 typedef const_iterator self_type;
1316 typedef const Partition_t value_type;
1317 typedef const Partition_t reference;
1318 typedef const Partition_t* pointer;
1319 typedef size_t difference_type;
1320 typedef std::forward_iterator_tag iterator_category;
1321
1325
1328 const fastdds::rtps::octet* ptr)
1329 : ptr_(ptr)
1330 , value_ (ptr_)
1332 }
1333
1335 {
1336 self_type tmp = *this;
1337 advance();
1338 return tmp;
1339 }
1340
1342 int)
1343 {
1344 advance();
1345 return *this;
1346 }
1347
1349 {
1350 return value_;
1351 }
1352
1354 {
1355 return &value_;
1356 }
1357
1358 bool operator ==(
1359 const self_type& rhs) const
1360 {
1361 return ptr_ == rhs.ptr_;
1362 }
1363
1364 bool operator !=(
1365 const self_type& rhs) const
1366 {
1367 return ptr_ != rhs.ptr_;
1368 }
1369
1370 protected:
1371
1375 void advance()
1376 {
1377 //Size of the element (with alignment)
1378 uint32_t size = *(uint32_t*)ptr_;
1379 ptr_ += (4u + ((size + 3u) & ~3u));
1380 value_ = Partition_t(ptr_);
1381 }
1382
1383 private:
1384
1386 const fastdds::rtps::octet* ptr_;
1389
1390 };
1391
1392public:
1393
1397 FASTDDS_EXPORTED_API PartitionQosPolicy()
1399 , QosPolicy(false)
1400 , max_size_ (0)
1401 , Npartitions_ (0)
1402 {
1404
1410 FASTDDS_EXPORTED_API PartitionQosPolicy(
1411 uint16_t in_length)
1412 : Parameter_t(PID_PARTITION, in_length)
1413 , QosPolicy(false)
1414 , max_size_ (in_length)
1415 , partitions_(in_length)
1416 , Npartitions_ (0)
1417 {
1418 }
1421 * @brief Copy constructor
1422 *
1423 * @param b Another PartitionQosPolicy instance
1424 */
1425 FASTDDS_EXPORTED_API PartitionQosPolicy(
1426 const PartitionQosPolicy& b)
1427 : Parameter_t(b)
1428 , QosPolicy(b)
1429 , max_size_ (b.max_size_)
1430 , partitions_(b.max_size_ != 0 ?
1431 b.partitions_.max_size :
1432 b.partitions_.length)
1433 , Npartitions_ (b.Npartitions_)
1434 {
1435 partitions_.copy(&b.partitions_, b.max_size_ != 0);
1436 }
1437
1441 virtual FASTDDS_EXPORTED_API ~PartitionQosPolicy() = default;
1442
1443 bool operator ==(
1444 const PartitionQosPolicy& b) const
1445 {
1446 return (this->max_size_ == b.max_size_) &&
1447 (this->Npartitions_ == b.Npartitions_) &&
1448 (this->partitions_ == b.partitions_) &&
1455 {
1457 Parameter_t::operator =(b);
1458 max_size_ = b.max_size_;
1459 partitions_.reserve(max_size_ != 0 ?
1460 b.partitions_.max_size :
1461 b.partitions_.length);
1462 partitions_.copy(&b.partitions_, b.max_size_ != 0);
1463 Npartitions_ = b.Npartitions_;
1464
1465 return *this;
1466 }
1467
1471 * @return const_iterator
1472 */
1473 const_iterator begin() const
1474 {
1475 return const_iterator(partitions_.data);
1476 }
1477
1481 * @return const_iterator
1482 */
1483 const_iterator end() const
1484 {
1485 return const_iterator(partitions_.data + partitions_.length);
1486 }
1487
1491 * @return uint32_t with the size
1492 */
1493 uint32_t size() const
1494 {
1495 return Npartitions_;
1496 }
1497
1503 uint32_t empty() const
1504 {
1505 return Npartitions_ == 0;
1506 }
1507
1514 uint32_t size)
1515 {
1516 partitions_.reserve(size);
1517 max_size_ = size;
1518 }
1519
1525 uint32_t max_size () const
1526 {
1527 return max_size_;
1528 }
1529
1535 FASTDDS_EXPORTED_API inline void push_back(
1536 const char* name)
1537 {
1538 //Realloc if needed;
1539 uint32_t size = (uint32_t)strlen(name) + 1;
1540 uint32_t alignment = ((size + 3u) & ~3u) - size;
1541
1542 if (max_size_ != 0 && (partitions_.max_size < partitions_.length +
1543 size + alignment + 4))
1544 {
1545 return;
1546 }
1547
1548 partitions_.reserve(partitions_.length + size + alignment + 4);
1549
1551 memcpy(partitions_.data + partitions_.length, o, 4);
1552 partitions_.length += 4;
1553
1554 memcpy(partitions_.data + partitions_.length, name, size);
1555 partitions_.length += size;
1556
1557 memset(partitions_.data + partitions_.length, 0, alignment);
1558 partitions_.length += alignment;
1559
1560 ++Npartitions_;
1561 hasChanged = true;
1562 }
1563
1567 FASTDDS_EXPORTED_API inline void clear() override
1568 {
1569 partitions_.length = 0;
1570 Npartitions_ = 0;
1571 hasChanged = false;
1572 }
1573
1579 FASTDDS_EXPORTED_API inline const std::vector<std::string> getNames() const
1580 {
1581 return names();
1582 }
1583
1589 FASTDDS_EXPORTED_API inline void setNames(
1590 std::vector<std::string>& nam)
1591 {
1592 names(nam);
1593 }
1594
1596 * Returns partition names.
1597 *
1598 * @return Vector of partition name strings.
1599 */
1600 FASTDDS_EXPORTED_API inline const std::vector<std::string> names() const
1601 {
1602 std::vector<std::string> names;
1603 if (Npartitions_ > 0)
1604 {
1605 for (auto it = begin(); it != end(); ++it)
1606 {
1607 names.push_back(it->name());
1608 }
1609 }
1610 return names;
1611 }
1612
1616
1618 FASTDDS_EXPORTED_API inline void names(
1619 std::vector<std::string>& nam)
1621 clear();
1622 for (auto it = nam.begin(); it != nam.end(); ++it)
1623 {
1624 push_back(it->c_str());
1625 }
1626 hasChanged = true;
1627 }
1629private:
1630
1632 uint32_t max_size_;
1636 uint32_t Npartitions_;
1637};
1638
1643{
1659};
1660
1664
1670 * @note Immutable Qos Policy
1671 */
1672class HistoryQosPolicy : public Parameter_t, public QosPolicy
1673{
1674public:
1675
1678
1679 FASTDDS_EXPORTED_API HistoryQosPolicy()
1680 : Parameter_t(PID_HISTORY, PARAMETER_KIND_LENGTH + 4)
1681 , QosPolicy(true)
1683 , depth(1)
1684 {
1685 }
1686
1690 virtual FASTDDS_EXPORTED_API ~HistoryQosPolicy() = default;
1691
1692 bool operator ==(
1693 const HistoryQosPolicy& b) const
1695 return (this->kind == b.kind) &&
1696 (this->depth == b.depth) &&
1697 Parameter_t::operator ==(b) &&
1699 }
1700
1701 inline void clear() override
1704 std::swap(*this, reset);
1705 }
1706
1707public:
1708
1716 int32_t depth;
1717};
1718
1724class ResourceLimitsQosPolicy : public Parameter_t, public QosPolicy
1725{
1726public:
1727
1736 int32_t max_samples;
1753
1755 int32_t allocated_samples;
1760 int32_t extra_samples;
1761
1765 FASTDDS_EXPORTED_API ResourceLimitsQosPolicy()
1767 , QosPolicy(false)
1775
1777
1779 virtual FASTDDS_EXPORTED_API ~ResourceLimitsQosPolicy() = default;
1780
1781 bool operator ==(
1782 const ResourceLimitsQosPolicy& b) const
1783 {
1784 return (this->max_samples == b.max_samples) &&
1785 (this->max_instances == b.max_instances) &&
1786 (this->max_samples_per_instance == b.max_samples_per_instance) &&
1787 (this->allocated_samples == b.allocated_samples) &&
1788 Parameter_t::operator ==(b) &&
1790 }
1791
1792 inline void clear() override
1793 {
1795 std::swap(*this, reset);
1796 }
1797
1798};
1799
1800
1801
1805
1812public:
1813
1817 FASTDDS_EXPORTED_API DurabilityServiceQosPolicy()
1818 : Parameter_t(PID_DURABILITY_SERVICE, PARAMETER_TIME_LENGTH + PARAMETER_KIND_LENGTH + 4 + 4 + 4 + 4)
1819 , QosPolicy(false)
1821 , history_depth(1)
1828
1831 virtual FASTDDS_EXPORTED_API ~DurabilityServiceQosPolicy() = default;
1832
1833 bool operator ==(
1834 const DurabilityServiceQosPolicy& b) const
1836 return (this->history_kind == b.history_kind) &&
1837 (this->history_depth == b.history_depth) &&
1838 (this->max_samples == b.max_samples) &&
1839 (this->max_instances == b.max_instances) &&
1840 (this->max_samples_per_instance == b.max_samples_per_instance) &&
1843 }
1844
1845 inline void clear() override
1846 {
1848 std::swap(*this, reset);
1849 }
1850
1851public:
1852
1869 int32_t history_depth;
1870
1877 int32_t max_samples;
1889
1891};
1892
1896 * @note Mutable Qos Policy
1897 */
1898class LifespanQosPolicy : public Parameter_t, public QosPolicy
1899{
1900public:
1901
1902
1903 * @brief Constructor
1904 */
1905 FASTDDS_EXPORTED_API LifespanQosPolicy()
1907 , QosPolicy(true)
1908 , duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
1909 {
1910 }
1911
1914
1915 virtual FASTDDS_EXPORTED_API ~LifespanQosPolicy() = default;
1916
1917 bool operator ==(
1918 const LifespanQosPolicy& b) const
1919 {
1920 return (this->duration == b.duration) &&
1923 }
1924
1925 inline void clear() override
1926 {
1928 std::swap(*this, reset);
1930
1931public:
1932
1935};
1936
1942 * @note Mutable Qos Policy
1943 */
1945{
1946public:
1947
1948
1949 * @brief Constructor
1950 */
1951 FASTDDS_EXPORTED_API OwnershipStrengthQosPolicy()
1953 , QosPolicy(false)
1954 , value(0)
1955 {
1956 }
1957
1960
1961 virtual FASTDDS_EXPORTED_API ~OwnershipStrengthQosPolicy() = default;
1962
1963 bool operator ==(
1964 const OwnershipStrengthQosPolicy& b) const
1965 {
1966 return (this->value == b.value) &&
1969 }
1970
1971 inline void clear() override
1974 std::swap(*this, reset);
1975 }
1976
1977public:
1978
1980 uint32_t value;
1981};
1982
1983
1990{
1991public:
1992
1994 int32_t value;
1995
1996
1997 * @brief Constructor
1998 */
1999 FASTDDS_EXPORTED_API TransportPriorityQosPolicy()
2001 , QosPolicy(false)
2002 , value(0)
2003 {
2004 }
2005
2009 virtual FASTDDS_EXPORTED_API ~TransportPriorityQosPolicy() = default;
2013 {
2014 return (this->value == b.value) &&
2018
2019 inline void clear() override
2020 {
2022 std::swap(*this, reset);
2023 }
2024
2025};
2026
2035
2037 * Class PublishModeQosPolicy, defines the publication mode for a specific writer.
2038 */
2039class PublishModeQosPolicy : public QosPolicy
2040{
2041public:
2042
2043
2045
2055 std::swap(*this, reset);
2056 }
2058 bool operator ==(
2059 const PublishModeQosPolicy& b) const
2060 {
2061 return (this->kind == b.kind) &&
2064 }
2065
2066};
2067
2069 * Enum DataRepresentationId, different kinds of topic data representation
2070 */
2071typedef enum DataRepresentationId : int16_t
2072{
2077
2079constexpr DataRepresentationId_t DEFAULT_DATA_REPRESENTATION {DataRepresentationId_t::XCDR_DATA_REPRESENTATION};
2080
2084
2092{
2093public:
2094
2096 std::vector<DataRepresentationId_t> m_value;
2097
2101 FASTDDS_EXPORTED_API DataRepresentationQosPolicy()
2103 , QosPolicy(false)
2105 }
2106
2109
2110 virtual FASTDDS_EXPORTED_API ~DataRepresentationQosPolicy() override = default;
2111
2112 /**
2113 * Compares the given policy to check if it's equal.
2114 *
2115 * @param b QoS Policy.
2116 * @return True if the policy is equal.
2118 bool operator ==(
2119 const DataRepresentationQosPolicy& b) const
2120 {
2121 return (this->m_value == b.m_value) &&
2124 }
2125
2126 inline void clear() override
2127 {
2129 std::swap(*this, reset);
2130 }
2132};
2133
2134enum TypeConsistencyKind : uint16_t
2135{
2146
2155public:
2156
2178 * @brief This option controls whether member names are taken into consideration for type assignability. If the option
2179 * is set to TRUE, member names are considered as part of assignability in addition to member IDs (so that members with
2180 * the same ID also have the same name). If the option is set to FALSE, then member names are not ignored. <br>
2181 * By default, false.
2182 */
2196
2200 FASTDDS_EXPORTED_API TypeConsistencyEnforcementQosPolicy()
2201 : Parameter_t(PID_TYPE_CONSISTENCY_ENFORCEMENT, 8) // 2 + 5 + 1 alignment byte
2202 , QosPolicy(true)
2203 {
2207 m_ignore_member_names = false;
2210 }
2211
2213
2215 virtual FASTDDS_EXPORTED_API ~TypeConsistencyEnforcementQosPolicy() override = default;
2216
2217 bool operator ==(
2219 {
2220 return m_kind == b.m_kind &&
2229
2230 inline void clear() override
2231 {
2233 std::swap(*this, reset);
2234 }
2235
2236};
2237
2241 * @note Immutable Qos Policy
2242 */
2244{
2245public:
2246
2249
2250 FASTDDS_EXPORTED_API DisablePositiveACKsQosPolicy()
2252 , QosPolicy(true)
2253 , enabled(false)
2254 , duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
2255 {
2256 }
2257
2261 virtual FASTDDS_EXPORTED_API ~DisablePositiveACKsQosPolicy() = default;
2262
2263 bool operator ==(
2264 const DisablePositiveACKsQosPolicy& b) const
2265 {
2266 return enabled == b.enabled &&
2270 }
2271
2272 inline void clear() override
2273 {
2275 std::swap(*this, reset);
2276 }
2277
2278public:
2279
2281 bool enabled;
2284};
2285
2289class TypeIdV1 : public Parameter_t, public QosPolicy
2291public:
2292
2295
2296
2297
2300 FASTDDS_EXPORTED_API TypeIdV1()
2302 , QosPolicy(false)
2304 {
2305 }
2306
2310
2312 FASTDDS_EXPORTED_API TypeIdV1(
2313 const TypeIdV1& type)
2314 : Parameter_t(type.Pid, type.length)
2315 , QosPolicy(type.send_always_)
2317 {
2318 }
2319
2323
2325 FASTDDS_EXPORTED_API TypeIdV1(
2326 const xtypes::TypeIdentifier& identifier)
2328 , QosPolicy(false)
2329 , m_type_identifier(identifier)
2330 {
2331 }
2332
2335
2336 * @param type Another instance of TypeIdV1
2337 */
2338 FASTDDS_EXPORTED_API TypeIdV1(
2339 TypeIdV1&& type)
2340 : Parameter_t(type.Pid, type.length)
2341 , QosPolicy(type.send_always_)
2343 {
2344 }
2345
2346 FASTDDS_EXPORTED_API TypeIdV1& operator =(
2347 const TypeIdV1& type)
2348 {
2349 Pid = type.Pid;
2350 length = type.length;
2352
2354
2355 return *this;
2356 }
2357
2358 FASTDDS_EXPORTED_API TypeIdV1& operator =(
2359 TypeIdV1&& type)
2360 {
2361 Pid = type.Pid;
2362 length = type.length;
2363 send_always_ = type.send_always_;
2364
2365 m_type_identifier = std::move(type.m_type_identifier);
2366
2367 return *this;
2368 }
2369
2370 /**
2371 * @brief Destructor
2372 */
2373 virtual FASTDDS_EXPORTED_API ~TypeIdV1() override = default;
2374
2375 inline void clear() override
2376 {
2377 *this = TypeIdV1();
2378 }
2379
2380 FASTDDS_EXPORTED_API TypeIdV1& operator =(
2381 const xtypes::TypeIdentifier& type_id)
2382 {
2383 m_type_identifier = type_id;
2384 return *this;
2386
2390 * @return TypeIdentifier reference
2391 */
2392 FASTDDS_EXPORTED_API const xtypes::TypeIdentifier& get() const
2393 {
2394 return m_type_identifier;
2395 }
2396
2397};
2398
2402class TypeObjectV1 : public Parameter_t, public QosPolicy
2403{
2404public:
2405
2408
2409
2412 FASTDDS_EXPORTED_API TypeObjectV1()
2414 , QosPolicy(false)
2416 {
2417 }
2418
2422
2424 FASTDDS_EXPORTED_API TypeObjectV1(
2425 const TypeObjectV1& type)
2426 : Parameter_t(type.Pid, type.length)
2427 , QosPolicy(type.send_always_)
2429 {
2430 }
2431
2435
2437 FASTDDS_EXPORTED_API TypeObjectV1(
2438 const xtypes::TypeObject& type)
2440 , QosPolicy(false)
2441 , m_type_object(type)
2442 {
2443 }
2444
2447
2448 * @param type Another instance of TypeObjectV1
2449 */
2450 FASTDDS_EXPORTED_API TypeObjectV1(
2451 TypeObjectV1&& type)
2452 : Parameter_t(type.Pid, type.length)
2453 , QosPolicy(type.send_always_)
2454 , m_type_object(std::move(type.m_type_object))
2455 {
2456 }
2457
2458 FASTDDS_EXPORTED_API TypeObjectV1& operator =(
2459 const TypeObjectV1& type)
2460 {
2461 Pid = type.Pid;
2462 length = type.length;
2464
2466
2467 return *this;
2468 }
2469
2470 FASTDDS_EXPORTED_API TypeObjectV1& operator =(
2471 TypeObjectV1&& type)
2472 {
2473 Pid = type.Pid;
2474 length = type.length;
2475 send_always_ = type.send_always_;
2476
2477 m_type_object = std::move(type.m_type_object);
2478
2479 return *this;
2480 }
2481
2482 /**
2483 * @brief Destructor
2484 */
2485 virtual FASTDDS_EXPORTED_API ~TypeObjectV1() override = default;
2486
2487 inline void clear() override
2488 {
2489 *this = TypeObjectV1();
2490 }
2491
2492 FASTDDS_EXPORTED_API TypeObjectV1& operator =(
2493 const xtypes::TypeObject& type_object)
2495 m_type_object = type_object;
2496 return *this;
2497 }
2498
2504 FASTDDS_EXPORTED_API const xtypes::TypeObject& get() const
2505 {
2506 return m_type_object;
2507 }
2508
2509};
2510
2511namespace xtypes {
2512
2516class TypeInformationParameter : public Parameter_t, public QosPolicy
2525
2526 FASTDDS_EXPORTED_API TypeInformationParameter()
2528 , QosPolicy(false)
2530 , assigned_(false)
2532 }
2533
2539 FASTDDS_EXPORTED_API TypeInformationParameter(
2540 const TypeInformationParameter& type)
2541 : Parameter_t(type.Pid, type.length)
2542 , QosPolicy(type.send_always_)
2544 , assigned_(type.assigned_)
2546 }
2547
2553 FASTDDS_EXPORTED_API TypeInformationParameter(
2556 , QosPolicy(false)
2557 , type_information(info)
2558 , assigned_(true)
2559 {
2560 }
2561
2566
2567 FASTDDS_EXPORTED_API TypeInformationParameter(
2569 : Parameter_t(type.Pid, type.length)
2570 , QosPolicy(type.send_always_)
2572 , assigned_(type.assigned_)
2573 {
2574 }
2575
2576 FASTDDS_EXPORTED_API TypeInformationParameter& operator =(
2577 const TypeInformationParameter& type)
2578 {
2579 Pid = type.Pid;
2580 length = type.length;
2582
2584 assigned_ = type.assigned_;
2586 return *this;
2587 }
2588
2589 FASTDDS_EXPORTED_API TypeInformationParameter& operator =(
2591 {
2592 Pid = type.Pid;
2593 length = type.length;
2594 send_always_ = type.send_always_;
2596 type_information = std::move(type.type_information);
2597 assigned_ = type.assigned_;
2598
2599 return *this;
2600 }
2601
2605 virtual FASTDDS_EXPORTED_API ~TypeInformationParameter() override = default;
2606
2607 inline void clear() override
2608 {
2609 *this = TypeInformationParameter();
2610 }
2617 FASTDDS_EXPORTED_API bool assigned() const
2618 {
2619 return assigned_;
2620 }
2621
2624
2626
2627 FASTDDS_EXPORTED_API void assigned(
2628 bool value)
2629 {
2630 assigned_ = value;
2632
2633 FASTDDS_EXPORTED_API TypeInformationParameter& operator =(
2634 const TypeInformation& type_info)
2635 {
2636 type_information = type_info;
2637 assigned_ = true;
2638 return *this;
2639 }
2640
2641private:
2644 bool assigned_;
2645};
2646
2647} // namespace xtypes
2648
2651
2656class WireProtocolConfigQos : public QosPolicy
2657{
2658
2659public:
2660
2664 FASTDDS_EXPORTED_API WireProtocolConfigQos()
2665 : QosPolicy(false)
2666 , participant_id(-1)
2667 , easy_mode_("")
2668 {
2670
2674 virtual FASTDDS_EXPORTED_API ~WireProtocolConfigQos() = default;
2675
2677 const WireProtocolConfigQos& b) const
2678 {
2679 return (this->prefix == b.prefix) &&
2680 (this->participant_id == b.participant_id) &&
2681 (this->builtin == b.builtin) &&
2682 (this->port == b.port) &&
2687 (this->easy_mode_ == b.easy_mode()) &&
2689 }
2690
2691 inline void clear() override
2692 {
2694 std::swap(*this, reset);
2695 }
2696
2699
2701 int32_t participant_id;
2705
2708
2714
2740
2743 const std::string& ip)
2744 {
2745 // Check if the input is empty
2746 if (!ip.empty())
2747 {
2748 // Check if the input is a valid IP
2749 if (!rtps::IPLocator::isIPv4(ip))
2750 {
2751 EPROSIMA_LOG_ERROR(
2752 WIREPROTOCOLQOS, "Invalid IP address format for ROS 2 Easy Mode. It must be an IPv4 address.");
2753
2754 return RETCODE_BAD_PARAMETER;
2755 }
2756 }
2757
2758 easy_mode_ = ip;
2759
2760 return RETCODE_OK;
2761 }
2762
2766 * @return IP address if set, empty string otherwise
2767 */
2768 const std::string& easy_mode() const
2769 {
2770 return easy_mode_;
2771 }
2772
2773private:
2774
2776 std::string easy_mode_;
2777};
2781{
2782public:
2783
2787 FASTDDS_EXPORTED_API TransportConfigQos()
2788 : QosPolicy(false)
2798
2800 virtual FASTDDS_EXPORTED_API ~TransportConfigQos() = default;
2801
2802 bool operator ==(
2803 const TransportConfigQos& b) const
2804 {
2805 return (this->user_transports == b.user_transports) &&
2811 (this->netmask_filter == b.netmask_filter) &&
2813 }
2815 inline void clear() override
2816 {
2818 std::swap(*this, reset);
2819 }
2820
2822 std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>> user_transports;
2823
2826
2830
2831 uint32_t send_socket_buffer_size;
2833 /*! Listen socket buffer for all listen resources. Zero value indicates to use default system buffer size. <br>
2834 * By default, 0.
2835 */
2840
2841 /*!
2842 * @brief Maximum message size used to avoid fragmentation, set ONLY in LARGE_DATA.
2843 *
2844 * If this value is not zero, the network factory will allow the initialization of UDP transports with maxMessageSize
2845 * higher than 65500K.
2846 */
2848
2851};
2852
2854FASTDDS_TODO_BEFORE(4, 0, "Make all eProsima extended QoS inherit from Parameter_t and QosPolicy if possible.");
2855class RTPSEndpointQos
2856{
2857public:
2858
2859 FASTDDS_EXPORTED_API RTPSEndpointQos() = default;
2860
2861 virtual FASTDDS_EXPORTED_API ~RTPSEndpointQos() = default;
2862
2863 inline void clear()
2866 std::swap(*this, reset);
2868
2869 bool operator ==(
2870 const RTPSEndpointQos& b) const
2871 {
2872 return (this->unicast_locator_list == b.unicast_locator_list) &&
2876 (this->ignore_non_matching_locators == b.ignore_non_matching_locators) &&
2877 (this->user_defined_id == b.user_defined_id) &&
2878 (this->entity_id == b.entity_id) &&
2880 }
2881
2884
2885
2890
2893
2894 //! Whether locators that don't match with the announced locators should be kept.
2895 bool ignore_non_matching_locators = false;
2896
2898 int16_t user_defined_id = -1;
2899
2901 int16_t entity_id = -1;
2902
2910{
2911public:
2912
2916 FASTDDS_EXPORTED_API WriterResourceLimitsQos()
2918 , reader_filters_allocation(0, 32u, 1u)
2920 }
2923
2925 virtual FASTDDS_EXPORTED_API ~WriterResourceLimitsQos() = default;
2926
2944};
2945
2950{
2951 /**
2952 * Automatic configuration.
2953 * DataSharing will be used if requirements are met.
2954 */
2955 AUTO = 0x01,
2958 * Entity creation will fail if requirements for DataSharing are not met
2959 */
2960 ON = 0x02,
2964 OFF = 0x03
2965};
2966
2967
2973class DataSharingQosPolicy : public Parameter_t, public QosPolicy
2974{
2975public:
2980 FASTDDS_EXPORTED_API DataSharingQosPolicy()
2982 , QosPolicy(true)
2983 {
2984 //Needed to generate the automatic domain ID
2985 automatic();
2986 }
2987
2989
2991 virtual FASTDDS_EXPORTED_API ~DataSharingQosPolicy() = default;
2992
2998 FASTDDS_EXPORTED_API DataSharingQosPolicy(
2999 const DataSharingQosPolicy& b)
3000 : Parameter_t(b)
3001 , QosPolicy(b)
3002 , kind_(b.kind())
3003 , shm_directory_ (b.shm_directory())
3004 , max_domains_ (b.max_domains())
3005 , domain_ids_(b.max_domains() != 0 ?
3006 b.max_domains() :
3007 b.domain_ids().size())
3008 {
3009 domain_ids_ = b.domain_ids();
3010 }
3011
3012 FASTDDS_EXPORTED_API DataSharingQosPolicy& operator =(
3013 const DataSharingQosPolicy& b)
3014 {
3016 Parameter_t::operator =(b);
3017 kind_ = b.kind();
3018 shm_directory_ = b.shm_directory();
3019 max_domains_ = b.max_domains();
3020 domain_ids_.reserve(max_domains_ != 0 ?
3021 max_domains_ :
3022 b.domain_ids().size());
3023 domain_ids_ = b.domain_ids();
3024 data_sharing_listener_thread_ = b.data_sharing_listener_thread();
3025
3026 return *this;
3028
3029 bool operator ==(
3030 const DataSharingQosPolicy& b) const
3031 {
3032 return kind_ == b.kind_ &&
3033 shm_directory_ == b.shm_directory_ &&
3034 domain_ids_ == b.domain_ids_ &&
3035 data_sharing_listener_thread_ == b.data_sharing_listener_thread_ &&
3038 }
3039
3040 inline void clear() override
3041 {
3043 std::swap(*this, reset);
3044 }
3045
3049 FASTDDS_EXPORTED_API const DataSharingKind& kind() const
3050 {
3051 return kind_;
3052 }
3057 FASTDDS_EXPORTED_API const std::string& shm_directory() const
3058 {
3059 return shm_directory_;
3060 }
3067
3071 * - User defined domain IDs use the 16 LSB and leave the 48 MSB as zero.
3072 *
3073 * @return the current DataSharing domain IDs
3074 */
3075 FASTDDS_EXPORTED_API const std::vector<uint64_t>& domain_ids() const
3076 {
3077 return domain_ids_;
3078 }
3079
3083 FASTDDS_EXPORTED_API void set_max_domains(
3084 uint32_t size)
3085 {
3086 domain_ids_.reserve(size);
3087 max_domains_ = size;
3088 }
3089
3093 FASTDDS_EXPORTED_API const uint32_t& max_domains() const
3095 return max_domains_;
3096 }
3097
3099
3104 FASTDDS_EXPORTED_API void automatic()
3105 {
3106 setup (AUTO, "", std::vector<uint16_t>());
3108
3112
3116 FASTDDS_EXPORTED_API void automatic(
3117 const std::vector<uint16_t>& domain_ids)
3118 {
3119 setup (AUTO, "", domain_ids);
3120 }
3121
3125
3129 FASTDDS_EXPORTED_API void automatic(
3130 const std::string& directory)
3131 {
3132 setup (AUTO, directory, std::vector<uint16_t>());
3133 }
3141 FASTDDS_EXPORTED_API void automatic(
3142 const std::string& directory,
3143 const std::vector<uint16_t>& domain_ids)
3144 {
3145 setup (AUTO, directory, domain_ids);
3146 }
3147
3149 * @brief Configures the DataSharing in active mode
3150 *
3151 * A default domain ID is automatically computed.
3152 *
3153 * @param directory The shared memory directory to use.
3154 * It is mandatory to provide a non-empty name or the creation of endpoints will fail.
3155 */
3156 FASTDDS_EXPORTED_API void on(
3157 const std::string& directory)
3158 {
3159 // TODO [ILG]: This parameter is unused right now. Activate the assert once it is used
3160 //assert(!directory.empty());
3161 setup (ON, directory, std::vector<uint16_t>());
3162 }
3163
3165
3171 FASTDDS_EXPORTED_API void on(
3172 const std::string& directory,
3173 const std::vector<uint16_t>& domain_ids)
3174 {
3175 // TODO [ILG]: This parameter is unused right now. Activate the assert once it is used
3176 //assert(!directory.empty());
3177 setup (ON, directory, domain_ids);
3178 }
3179
3181 * @brief Configures the DataSharing in disabled mode
3182 */
3183 FASTDDS_EXPORTED_API void off()
3184 {
3185 setup (OFF, "", std::vector<uint16_t>());
3186 }
3187
3189
3193 FASTDDS_EXPORTED_API void add_domain_id(
3194 uint16_t id)
3196 if (max_domains_ == 0 || domain_ids_.size() < max_domains_)
3197 {
3198 domain_ids_.push_back(id);
3199 }
3200 }
3201
3202 // Not on the exported API, but must be public for other internal classes
3203 void add_domain_id(
3204 uint64_t id)
3206 if (max_domains_ == 0 || domain_ids_.size() < max_domains_)
3207 {
3208 domain_ids_.push_back(id);
3209 }
3210 }
3211
3215 * @return rtps::ThreadSettings reference
3216 */
3218 {
3219 return data_sharing_listener_thread_;
3220 }
3221
3228 {
3229 return data_sharing_listener_thread_;
3230 }
3231
3238 const rtps::ThreadSettings& value)
3239 {
3240 data_sharing_listener_thread_ = value;
3241 }
3242
3243private:
3244
3245 void setup(
3246 const DataSharingKind& kind,
3247 const std::string& directory,
3248 const std::vector<uint16_t>& domain_ids)
3249 {
3250 kind_ = kind;
3251 shm_directory_ = directory;
3252 domain_ids_.clear();
3253
3254 for (uint16_t id : domain_ids)
3255 {
3256 add_domain_id(id);
3257 }
3258 }
3259
3261 DataSharingKind kind_ = AUTO;
3262
3264 std::string shm_directory_;
3265
3267 uint32_t max_domains_ = 0;
3268
3270 std::vector<uint64_t> domain_ids_;
3271
3273 rtps::ThreadSettings data_sharing_listener_thread_;
3274};
3275
3276
3277} // namespace dds
3278} // namespace fastdds
3279} // namespace eprosima
3280
3281#endif // FASTDDS_DDS_CORE_POLICY__QOSPOLICIES_HPP
Resource limited wrapper of std::vector.
Definition ResourceLimitedVector.hpp:59
size_type size() const noexcept
Definition ResourceLimitedVector.hpp:479
configuration_type configuration_
Definition ResourceLimitedVector.hpp:543
std::vector< fastdds::rtps::octet, std::allocator< fastdds::rtps::octet > > collection_type
Definition ResourceLimitedVector.hpp:63
void clear()
Definition ResourceLimitedVector.hpp:494
void assign(InputIterator first, InputIterator last)
Definition ResourceLimitedVector.hpp:318
collection_type collection_
Definition ResourceLimitedVector.hpp:544
value_type * data()
Definition ResourceLimitedVector.hpp:517
With multiple standard data Representations available, and vendor-specific extensions possible,...
Definition QosPolicies.hpp:2070
bool operator==(const DataRepresentationQosPolicy &b) const
Compares the given policy to check if it's equal.
Definition QosPolicies.hpp:2096
virtual FASTDDS_EXPORTED_API ~DataRepresentationQosPolicy() override=default
Destructor.
FASTDDS_EXPORTED_API DataRepresentationQosPolicy()
Constructor.
Definition QosPolicies.hpp:2079
std::vector< DataRepresentationId_t > m_value
List of DataRepresentationId. By default, empty list.
Definition QosPolicies.hpp:2074
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2104
Qos Policy to configure the data sharing.
Definition QosPolicies.hpp:2952
FASTDDS_EXPORTED_API const std::vector< uint64_t > & domain_ids() const
Gets the set of DataSharing domain IDs.
Definition QosPolicies.hpp:3053
FASTDDS_EXPORTED_API const uint32_t & max_domains() const
Definition QosPolicies.hpp:3071
bool operator==(const DataSharingQosPolicy &b) const
Definition QosPolicies.hpp:3007
FASTDDS_EXPORTED_API const DataSharingKind & kind() const
Definition QosPolicies.hpp:3027
FASTDDS_EXPORTED_API DataSharingQosPolicy()
Constructor.
Definition QosPolicies.hpp:2958
FASTDDS_EXPORTED_API const std::string & shm_directory() const
Definition QosPolicies.hpp:3035
rtps::ThreadSettings & data_sharing_listener_thread()
Getter for DataSharing listener thread ThreadSettings.
Definition QosPolicies.hpp:3195
FASTDDS_EXPORTED_API DataSharingQosPolicy & operator=(const DataSharingQosPolicy &b)
Definition QosPolicies.hpp:2990
virtual FASTDDS_EXPORTED_API ~DataSharingQosPolicy()=default
Destructor.
FASTDDS_EXPORTED_API void add_domain_id(uint16_t id)
Adds a user-specific DataSharing domain ID.
Definition QosPolicies.hpp:3171
FASTDDS_EXPORTED_API void off()
Configures the DataSharing in disabled mode.
Definition QosPolicies.hpp:3161
FASTDDS_EXPORTED_API void set_max_domains(uint32_t size)
Definition QosPolicies.hpp:3061
FASTDDS_EXPORTED_API void on(const std::string &directory)
Configures the DataSharing in active mode.
Definition QosPolicies.hpp:3134
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:3018
FASTDDS_EXPORTED_API void automatic()
Configures the DataSharing in automatic mode.
Definition QosPolicies.hpp:3082
bool operator==(const DeadlineQosPolicy &b) const
Definition QosPolicies.hpp:381
fastdds::dds::Duration_t period
Maximum time expected between samples.
Definition QosPolicies.hpp:403
FASTDDS_EXPORTED_API DeadlineQosPolicy()
Constructor.
Definition QosPolicies.hpp:369
virtual FASTDDS_EXPORTED_API ~DeadlineQosPolicy()=default
Destructor.
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:389
bool operator==(const DestinationOrderQosPolicy &b) const
Definition QosPolicies.hpp:737
DestinationOrderQosPolicyKind kind
DestinationOrderQosPolicyKind. By default, BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS.
Definition QosPolicies.hpp:754
virtual FASTDDS_EXPORTED_API ~DestinationOrderQosPolicy()=default
Destructor.
FASTDDS_EXPORTED_API DestinationOrderQosPolicy()
Constructor.
Definition QosPolicies.hpp:725
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:745
Class DisablePositiveACKsQosPolicy to disable sending of positive ACKs.
Definition QosPolicies.hpp:2222
bool operator==(const DisablePositiveACKsQosPolicy &b) const
Definition QosPolicies.hpp:2241
bool enabled
True if this QoS is enabled. By default, false.
Definition QosPolicies.hpp:2259
fastdds::dds::Duration_t duration
The duration to keep samples for (not serialized as not needed by reader). By default,...
Definition QosPolicies.hpp:2261
FASTDDS_EXPORTED_API DisablePositiveACKsQosPolicy()
Constructor.
Definition QosPolicies.hpp:2228
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2250
virtual FASTDDS_EXPORTED_API ~DisablePositiveACKsQosPolicy()=default
Destructor.
virtual FASTDDS_EXPORTED_API ~DurabilityQosPolicy()=default
Destructor.
fastdds::rtps::DurabilityKind_t durabilityKind() const
Translates kind to rtps layer equivalent.
Definition QosPolicies.hpp:301
DurabilityQosPolicyKind_t kind
DurabilityQosPolicyKind.
Definition QosPolicies.hpp:352
FASTDDS_EXPORTED_API DurabilityQosPolicy()
Constructor.
Definition QosPolicies.hpp:284
bool operator==(const DurabilityQosPolicy &b) const
Definition QosPolicies.hpp:313
void durabilityKind(const fastdds::rtps::DurabilityKind_t new_kind)
Set kind passing the rtps layer equivalent kind.
Definition QosPolicies.hpp:326
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:340
Specifies the configuration of the durability service.
Definition QosPolicies.hpp:1789
virtual FASTDDS_EXPORTED_API ~DurabilityServiceQosPolicy()=default
Destructor.
int32_t max_samples_per_instance
Control the ResourceLimitsQos of the implied DataReader that stores the data within the durability se...
Definition QosPolicies.hpp:1868
FASTDDS_EXPORTED_API DurabilityServiceQosPolicy()
Constructor.
Definition QosPolicies.hpp:1795
int32_t max_samples
Control the ResourceLimitsQos of the implied DataReader that stores the data within the durability se...
Definition QosPolicies.hpp:1855
int32_t max_instances
Control the ResourceLimitsQos of the implied DataReader that stores the data within the durability se...
Definition QosPolicies.hpp:1861
fastdds::dds::Duration_t service_cleanup_delay
Control when the service is able to remove all information regarding a data-instance.
Definition QosPolicies.hpp:1835
HistoryQosPolicyKind history_kind
Controls the HistoryQosPolicy of the fictitious DataReader that stores the data within the durability...
Definition QosPolicies.hpp:1841
int32_t history_depth
Number of most recent values that should be maintained on the History.
Definition QosPolicies.hpp:1847
bool operator==(const DurabilityServiceQosPolicy &b) const
Definition QosPolicies.hpp:1811
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1823
bool operator==(const EntityFactoryQosPolicy &b) const
Definition QosPolicies.hpp:225
FASTDDS_EXPORTED_API EntityFactoryQosPolicy(bool autoenable)
Constructor.
Definition QosPolicies.hpp:212
FASTDDS_EXPORTED_API EntityFactoryQosPolicy()
Constructor without parameters.
Definition QosPolicies.hpp:202
bool autoenable_created_entities
Specifies whether the entity acting as a factory automatically enables the instances it creates.
Definition QosPolicies.hpp:197
virtual FASTDDS_EXPORTED_API ~EntityFactoryQosPolicy()
Destructor.
Definition QosPolicies.hpp:221
void clear()
Definition QosPolicies.hpp:232
Class GenericDataQosPolicy, base class to transmit user data during the discovery phase.
Definition QosPolicies.hpp:763
virtual FASTDDS_EXPORTED_API ~GenericDataQosPolicy()=default
FASTDDS_EXPORTED_API const collection_type & getValue() const
Returns raw data vector.
Definition QosPolicies.hpp:962
FASTDDS_EXPORTED_API GenericDataQosPolicy(const GenericDataQosPolicy &data)
Construct from another GenericDataQosPolicy.
Definition QosPolicies.hpp:793
FASTDDS_EXPORTED_API GenericDataQosPolicy(ParameterId_t pid, uint16_t in_length)
Definition QosPolicies.hpp:776
FASTDDS_EXPORTED_API collection_type & data_vec()
Returns raw data vector.
Definition QosPolicies.hpp:936
FASTDDS_EXPORTED_API GenericDataQosPolicy(ParameterId_t pid)
Definition QosPolicies.hpp:768
void resize(size_t new_size)
Definition QosPolicies.hpp:901
const collection_type & dataVec() const
Definition QosPolicies.hpp:910
FASTDDS_EXPORTED_API const collection_type & data_vec() const
Returns raw data vector.
Definition QosPolicies.hpp:926
FASTDDS_EXPORTED_API void data_vec(const collection_type &vec)
Sets raw data vector.
Definition QosPolicies.hpp:946
FASTDDS_EXPORTED_API GenericDataQosPolicy(ParameterId_t pid, const collection_type &data)
Construct from underlying collection type.
Definition QosPolicies.hpp:810
void set_max_size(size_t size)
Set the maximum size of the user data and reserves memory for that much.
Definition QosPolicies.hpp:887
bool operator==(const GenericDataQosPolicy &b) const
Definition QosPolicies.hpp:868
FASTDDS_EXPORTED_API void setValue(const collection_type &vec)
Sets raw data vector.
Definition QosPolicies.hpp:972
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:915
GenericDataQosPolicy & operator=(const collection_type &b)
Copies data from underlying collection type.
Definition QosPolicies.hpp:834
Specifies the behavior of the Service in the case where the value of a sample changes (one or more ti...
Definition QosPolicies.hpp:1651
bool operator==(const HistoryQosPolicy &b) const
Definition QosPolicies.hpp:1670
HistoryQosPolicyKind kind
HistoryQosPolicyKind. By default, KEEP_LAST_HISTORY_QOS.
Definition QosPolicies.hpp:1688
int32_t depth
History depth.
Definition QosPolicies.hpp:1694
FASTDDS_EXPORTED_API HistoryQosPolicy()
Constructor.
Definition QosPolicies.hpp:1657
virtual FASTDDS_EXPORTED_API ~HistoryQosPolicy()=default
Destructor.
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1679
FASTDDS_EXPORTED_API LatencyBudgetQosPolicy()
Constructor.
Definition QosPolicies.hpp:422
bool operator==(const LatencyBudgetQosPolicy &b) const
Definition QosPolicies.hpp:434
fastdds::dds::Duration_t duration
Maximum acceptable delay from the time data is written until it is received. By default,...
Definition QosPolicies.hpp:451
virtual FASTDDS_EXPORTED_API ~LatencyBudgetQosPolicy()=default
Destructor.
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:442
Specifies the maximum duration of validity of the data written by the DataWriter.
Definition QosPolicies.hpp:1877
FASTDDS_EXPORTED_API LifespanQosPolicy()
Constructor.
Definition QosPolicies.hpp:1883
virtual FASTDDS_EXPORTED_API ~LifespanQosPolicy()=default
Destructor.
fastdds::dds::Duration_t duration
Period of validity. By default, dds::c_TimeInfinite.
Definition QosPolicies.hpp:1912
bool operator==(const LifespanQosPolicy &b) const
Definition QosPolicies.hpp:1895
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1903
virtual FASTDDS_EXPORTED_API ~LivelinessQosPolicy()=default
Destructor.
LivelinessQosPolicyKind kind
Liveliness kind By default, AUTOMATIC_LIVELINESS.
Definition QosPolicies.hpp:527
FASTDDS_EXPORTED_API LivelinessQosPolicy()
Constructor.
Definition QosPolicies.hpp:494
fastdds::dds::Duration_t lease_duration
Period within which liveliness should be asserted.
Definition QosPolicies.hpp:534
bool operator==(const LivelinessQosPolicy &b) const
Definition QosPolicies.hpp:508
fastdds::dds::Duration_t announcement_period
The period for automatic assertion of liveliness.
Definition QosPolicies.hpp:541
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:518
FASTDDS_EXPORTED_API OwnershipQosPolicy()
Constructor.
Definition QosPolicies.hpp:658
bool operator==(const OwnershipQosPolicy &b) const
Definition QosPolicies.hpp:670
OwnershipQosPolicyKind kind
OwnershipQosPolicyKind.
Definition QosPolicies.hpp:687
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:678
virtual FASTDDS_EXPORTED_API ~OwnershipQosPolicy()=default
Destructor.
Specifies the value of the “strength” used to arbitrate among multiple DataWriter objects that attemp...
Definition QosPolicies.hpp:1923
FASTDDS_EXPORTED_API OwnershipStrengthQosPolicy()
Constructor.
Definition QosPolicies.hpp:1929
virtual FASTDDS_EXPORTED_API ~OwnershipStrengthQosPolicy()=default
Destructor.
uint32_t value
Strength By default, 0.
Definition QosPolicies.hpp:1958
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1949
bool operator==(const OwnershipStrengthQosPolicy &b) const
Definition QosPolicies.hpp:1941
Base Parameter class with parameter PID and parameter length in bytes.
Definition ParameterTypes.hpp:202
ParameterId_t Pid
Parameter ID. By default, PID_PAD.
Definition ParameterTypes.hpp:245
FASTDDS_EXPORTED_API Parameter_t()
Constructor without parameters.
Definition ParameterTypes.hpp:208
uint16_t length
Parameter length. By default, 0.
Definition ParameterTypes.hpp:247
bool operator==(const Parameter_t &b) const
Definition ParameterTypes.hpp:235
Definition QosPolicies.hpp:1212
friend class PartitionQosPolicy
Definition QosPolicies.hpp:1214
bool operator==(const Partition_t &rhs) const
Definition QosPolicies.hpp:1240
bool operator!=(const Partition_t &rhs) const
Definition QosPolicies.hpp:1247
uint32_t size() const
Getter for the size.
Definition QosPolicies.hpp:1258
const char * name() const
Getter for the partition name.
Definition QosPolicies.hpp:1268
pointer operator->()
Definition QosPolicies.hpp:1331
size_t difference_type
Definition QosPolicies.hpp:1297
self_type operator++()
Definition QosPolicies.hpp:1312
bool operator==(const self_type &rhs) const
Definition QosPolicies.hpp:1336
std::forward_iterator_tag iterator_category
Definition QosPolicies.hpp:1298
const Partition_t value_type
Definition QosPolicies.hpp:1294
bool operator!=(const self_type &rhs) const
Definition QosPolicies.hpp:1342
reference operator*()
Definition QosPolicies.hpp:1326
const Partition_t reference
Definition QosPolicies.hpp:1295
const_iterator self_type
Definition QosPolicies.hpp:1293
const_iterator(const fastdds::rtps::octet *ptr)
Constructor using a pointer.
Definition QosPolicies.hpp:1305
void advance()
Shift the pointer to the next element.
Definition QosPolicies.hpp:1353
const Partition_t * pointer
Definition QosPolicies.hpp:1296
Set of strings that introduces a logical partition among the topics visible by the Publisher and Subs...
Definition QosPolicies.hpp:1286
bool operator==(const PartitionQosPolicy &b) const
Definition QosPolicies.hpp:1421
FASTDDS_EXPORTED_API const std::vector< std::string > names() const
Returns partition names.
Definition QosPolicies.hpp:1578
const_iterator begin() const
Getter for the first position of the partition list.
Definition QosPolicies.hpp:1451
FASTDDS_EXPORTED_API void push_back(const char *name)
Appends a name to the list of partition names.
Definition QosPolicies.hpp:1513
uint32_t size() const
Getter for the number of partitions.
Definition QosPolicies.hpp:1471
FASTDDS_EXPORTED_API const std::vector< std::string > getNames() const
Returns partition names.
Definition QosPolicies.hpp:1557
uint32_t max_size() const
Getter for the maximum size (in bytes).
Definition QosPolicies.hpp:1503
virtual FASTDDS_EXPORTED_API ~PartitionQosPolicy()=default
Destructor.
FASTDDS_EXPORTED_API void setNames(std::vector< std::string > &nam)
Overrides partition names.
Definition QosPolicies.hpp:1567
void set_max_size(uint32_t size)
Setter for the maximum size reserved for partitions (in bytes).
Definition QosPolicies.hpp:1491
PartitionQosPolicy & operator=(const PartitionQosPolicy &b)
Definition QosPolicies.hpp:1431
const_iterator end() const
Getter for the end of the partition list.
Definition QosPolicies.hpp:1461
uint32_t empty() const
Check if the set is empty.
Definition QosPolicies.hpp:1481
FASTDDS_EXPORTED_API void clear() override
Clears list of partition names.
Definition QosPolicies.hpp:1545
FASTDDS_EXPORTED_API PartitionQosPolicy()
Constructor without parameters.
Definition QosPolicies.hpp:1375
bool coherent_access
Specifies support coherent access.
Definition QosPolicies.hpp:1201
virtual FASTDDS_EXPORTED_API ~PresentationQosPolicy()=default
Destructor.
bool operator==(const PresentationQosPolicy &b) const
Definition QosPolicies.hpp:1176
FASTDDS_EXPORTED_API PresentationQosPolicy()
Constructor without parameters.
Definition QosPolicies.hpp:1162
bool ordered_access
Specifies support for ordered access to the samples received at the subscription end.
Definition QosPolicies.hpp:1207
PresentationQosPolicyAccessScopeKind access_scope
Access Scope Kind By default, INSTANCE_PRESENTATION_QOS.
Definition QosPolicies.hpp:1195
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1186
Class PublishModeQosPolicy, defines the publication mode for a specific writer.
Definition QosPolicies.hpp:2018
std::string flow_controller_name
Name of the flow controller used when publish mode kind is ASYNCHRONOUS_PUBLISH_MODE.
Definition QosPolicies.hpp:2028
PublishModeQosPolicyKind kind
PublishModeQosPolicyKind By default, SYNCHRONOUS_PUBLISH_MODE.
Definition QosPolicies.hpp:2022
bool operator==(const PublishModeQosPolicy &b) const
Definition QosPolicies.hpp:2036
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2030
Definition QosPolicies.hpp:111
bool hasChanged
Boolean that indicates if the Qos has been changed with respect to the default Qos.
Definition QosPolicies.hpp:115
QosPolicy(bool send_always)
Constructor.
Definition QosPolicies.hpp:131
bool send_always_
Boolean that indicates if the Qos has to be sent even if it is not changed.
Definition QosPolicies.hpp:179
virtual void clear()=0
Clears the QosPolicy object.
QosPolicy(const QosPolicy &b)=default
Copy Constructor.
QosPolicy & operator=(const QosPolicy &b)=default
virtual bool send_always() const
Whether it should always be sent.
Definition QosPolicies.hpp:166
QosPolicy()
Constructor without parameters.
Definition QosPolicies.hpp:120
virtual ~QosPolicy()=default
Destructor.
bool operator==(const QosPolicy &b) const
Definition QosPolicies.hpp:151
Definition QosPolicies.hpp:2834
fastdds::rtps::ExternalLocators external_unicast_locators
The collection of external locators to use for communication.
Definition QosPolicies.hpp:2870
int16_t entity_id
Entity ID, if the user wants to specify the EntityID of the endpoint. By default,...
Definition QosPolicies.hpp:2879
fastdds::rtps::MemoryManagementPolicy_t history_memory_policy
Underlying History memory policy. By default, PREALLOCATED_WITH_REALLOC_MEMORY_MODE.
Definition QosPolicies.hpp:2882
int16_t user_defined_id
User Defined ID, used for StaticEndpointDiscovery. By default, -1.
Definition QosPolicies.hpp:2876
rtps::LocatorList multicast_locator_list
Multicast locator list.
Definition QosPolicies.hpp:2864
FASTDDS_EXPORTED_API RTPSEndpointQos()=default
virtual FASTDDS_EXPORTED_API ~RTPSEndpointQos()=default
rtps::LocatorList remote_locator_list
Remote locator list.
Definition QosPolicies.hpp:2867
bool ignore_non_matching_locators
Whether locators that don't match with the announced locators should be kept.
Definition QosPolicies.hpp:2873
void clear()
Definition QosPolicies.hpp:2841
bool operator==(const RTPSEndpointQos &b) const
Definition QosPolicies.hpp:2847
rtps::LocatorList unicast_locator_list
Unicast locator list.
Definition QosPolicies.hpp:2861
FASTDDS_EXPORTED_API ReliabilityQosPolicy()
Constructor.
Definition QosPolicies.hpp:576
virtual FASTDDS_EXPORTED_API ~ReliabilityQosPolicy()=default
Destructor.
fastdds::dds::Duration_t max_blocking_time
Defines the maximum period of time certain methods will be blocked.
Definition QosPolicies.hpp:622
bool operator==(const ReliabilityQosPolicy &b) const
Definition QosPolicies.hpp:589
ReliabilityQosPolicyKind kind
Defines the reliability kind of the endpoint.
Definition QosPolicies.hpp:610
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:598
Specifies the resources that the Service can consume in order to meet the requested QoS.
Definition QosPolicies.hpp:1703
bool operator==(const ResourceLimitsQosPolicy &b) const
Definition QosPolicies.hpp:1759
FASTDDS_EXPORTED_API ResourceLimitsQosPolicy()
Constructor.
Definition QosPolicies.hpp:1743
int32_t max_samples_per_instance
Represents the maximum number of samples of any one instance a DataWriter(or DataReader) can manage.
Definition QosPolicies.hpp:1728
int32_t allocated_samples
Number of samples initially allocated.
Definition QosPolicies.hpp:1733
int32_t extra_samples
Represents the extra number of samples available once the max_samples have been reached in the histor...
Definition QosPolicies.hpp:1738
int32_t max_samples
Specifies the maximum number of data-samples the DataWriter (or DataReader) can manage across all the...
Definition QosPolicies.hpp:1714
virtual FASTDDS_EXPORTED_API ~ResourceLimitsQosPolicy()=default
Destructor.
int32_t max_instances
Represents the maximum number of instances DataWriter (or DataReader) can manage.
Definition QosPolicies.hpp:1721
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1770
Filter that allows a DataReader to specify that it is interested only in (potentially) a subset of th...
Definition QosPolicies.hpp:1082
fastdds::dds::Duration_t minimum_separation
Minimum interval between samples. By default, dds::c_TimeZero (the DataReader is interested in all va...
Definition QosPolicies.hpp:1117
FASTDDS_EXPORTED_API TimeBasedFilterQosPolicy()
Constructor.
Definition QosPolicies.hpp:1088
std::vector< std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > > user_transports
User defined transports to use alongside or in place of builtins.
Definition QosPolicies.hpp:2800
bool operator==(const TransportConfigQos &b) const
Definition QosPolicies.hpp:2780
fastdds::rtps::NetmaskFilterKind netmask_filter
Netmask filter configuration.
Definition QosPolicies.hpp:2828
uint32_t listen_socket_buffer_size
Listen socket buffer for all listen resources.
Definition QosPolicies.hpp:2814
bool use_builtin_transports
Set as false to disable the default UDPv4 implementation. By default, true.
Definition QosPolicies.hpp:2803
uint32_t max_msg_size_no_frag
Maximum message size used to avoid fragmentation, set ONLY in LARGE_DATA.
Definition QosPolicies.hpp:2825
rtps::ThreadSettings builtin_transports_reception_threads_
Thread settings for the builtin transports reception threads.
Definition QosPolicies.hpp:2817
FASTDDS_EXPORTED_API TransportConfigQos()
Constructor.
Definition QosPolicies.hpp:2765
uint32_t send_socket_buffer_size
Send socket buffer size for the send resource.
Definition QosPolicies.hpp:2809
virtual FASTDDS_EXPORTED_API ~TransportConfigQos()=default
Destructor.
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2793
This policy is a hint to the infrastructure as to how to set the priority of the underlying transport...
Definition QosPolicies.hpp:1968
int32_t value
Priority By default, 0.
Definition QosPolicies.hpp:1972
bool operator==(const TransportPriorityQosPolicy &b) const
Definition QosPolicies.hpp:1989
FASTDDS_EXPORTED_API TransportPriorityQosPolicy()
Constructor.
Definition QosPolicies.hpp:1977
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:1997
virtual FASTDDS_EXPORTED_API ~TransportPriorityQosPolicy()=default
Destructor.
The TypeConsistencyEnforcementQosPolicy defines the rules for determining whether the type used to pu...
Definition QosPolicies.hpp:2132
bool m_ignore_member_names
This option controls whether member names are taken into consideration for type assignability.
Definition QosPolicies.hpp:2161
FASTDDS_EXPORTED_API TypeConsistencyEnforcementQosPolicy()
Constructor.
Definition QosPolicies.hpp:2178
bool m_ignore_string_bounds
This option controls whether string bounds are taken into consideration for type assignability.
Definition QosPolicies.hpp:2154
bool m_ignore_sequence_bounds
This option controls whether sequence bounds are taken into consideration for type assignability.
Definition QosPolicies.hpp:2145
bool m_prevent_type_widening
This option controls whether type widening is allowed.
Definition QosPolicies.hpp:2167
bool operator==(const TypeConsistencyEnforcementQosPolicy &b) const
Definition QosPolicies.hpp:2195
bool m_force_type_validation
This option requires type information to be available in order to complete matching between a DataWri...
Definition QosPolicies.hpp:2173
virtual FASTDDS_EXPORTED_API ~TypeConsistencyEnforcementQosPolicy() override=default
Destructor.
TypeConsistencyKind m_kind
TypeConsistencyKind. By default, ALLOW_TYPE_COERCION.
Definition QosPolicies.hpp:2136
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2208
Class TypeIdV1.
Definition QosPolicies.hpp:2268
virtual FASTDDS_EXPORTED_API ~TypeIdV1() override=default
Destructor.
xtypes::TypeIdentifier m_type_identifier
Type Identifier.
Definition QosPolicies.hpp:2272
FASTDDS_EXPORTED_API TypeIdV1()
Constructor without parameters.
Definition QosPolicies.hpp:2278
FASTDDS_EXPORTED_API TypeIdV1 & operator=(const TypeIdV1 &type)
Definition QosPolicies.hpp:2324
FASTDDS_EXPORTED_API const xtypes::TypeIdentifier & get() const
Getter for the TypeIndentifier.
Definition QosPolicies.hpp:2370
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2353
Class TypeObjectV1.
Definition QosPolicies.hpp:2381
virtual FASTDDS_EXPORTED_API ~TypeObjectV1() override=default
Destructor.
FASTDDS_EXPORTED_API TypeObjectV1 & operator=(const TypeObjectV1 &type)
Definition QosPolicies.hpp:2436
xtypes::TypeObject m_type_object
Type Object.
Definition QosPolicies.hpp:2385
FASTDDS_EXPORTED_API TypeObjectV1()
Constructor.
Definition QosPolicies.hpp:2390
FASTDDS_EXPORTED_API const xtypes::TypeObject & get() const
Getter for the TypeObject.
Definition QosPolicies.hpp:2482
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2465
fastdds::rtps::GuidPrefix_t prefix
Optionally allows user to define the GuidPrefix_t.
Definition QosPolicies.hpp:2676
FASTDDS_EXPORTED_API WireProtocolConfigQos()
Constructor.
Definition QosPolicies.hpp:2642
rtps::LocatorList default_multicast_locator_list
Default list of Multicast Locators to be used for any Endpoint defined inside this RTPSParticipant in...
Definition QosPolicies.hpp:2697
fastdds::rtps::BuiltinAttributes builtin
Builtin parameters.
Definition QosPolicies.hpp:2682
rtps::ExternalLocators default_external_unicast_locators
The collection of external locators to use for communication on user created topics.
Definition QosPolicies.hpp:2702
const std::string & easy_mode() const
Getter for ROS 2 Easy Mode IP.
Definition QosPolicies.hpp:2746
bool ignore_non_matching_locators
Whether locators that don't match with the announced locators should be kept.
Definition QosPolicies.hpp:2707
virtual FASTDDS_EXPORTED_API ~WireProtocolConfigQos()=default
Destructor.
ReturnCode_t easy_mode(const std::string &ip)
Setter for ROS 2 Easy Mode IP.
Definition QosPolicies.hpp:2720
rtps::LocatorList default_unicast_locator_list
Default list of Unicast Locators to be used for any Endpoint defined inside this RTPSParticipant in t...
Definition QosPolicies.hpp:2691
fastdds::rtps::PortParameters port
Port Parameters.
Definition QosPolicies.hpp:2685
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2669
bool operator==(const WireProtocolConfigQos &b) const
Definition QosPolicies.hpp:2654
int32_t participant_id
Participant ID By default, -1.
Definition QosPolicies.hpp:2679
Qos Policy to configure the limit of the writer resources.
Definition QosPolicies.hpp:2888
virtual FASTDDS_EXPORTED_API ~WriterResourceLimitsQos()=default
Destructor.
bool operator==(const WriterResourceLimitsQos &b) const
Definition QosPolicies.hpp:2911
fastdds::ResourceLimitedContainerConfig reader_filters_allocation
Reader filters allocation limits.
Definition QosPolicies.hpp:2921
FASTDDS_EXPORTED_API WriterResourceLimitsQos()
Constructor.
Definition QosPolicies.hpp:2894
void clear()
Definition QosPolicies.hpp:2905
fastdds::ResourceLimitedContainerConfig matched_subscriber_allocation
Matched subscribers allocation limits.
Definition QosPolicies.hpp:2919
This class represents the union TypeIdentifier defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:2820
This class represents the structure TypeInformation defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:24606
Class xtypes::TypeInformationParameter.
Definition QosPolicies.hpp:2495
FASTDDS_EXPORTED_API TypeInformationParameter()
Constructor.
Definition QosPolicies.hpp:2504
virtual FASTDDS_EXPORTED_API ~TypeInformationParameter() override=default
Destructor.
eprosima::fastdds::dds::xtypes::TypeInformation type_information
Type Information.
Definition QosPolicies.hpp:2499
FASTDDS_EXPORTED_API bool assigned() const
Check if it is assigned.
Definition QosPolicies.hpp:2595
FASTDDS_EXPORTED_API TypeInformationParameter & operator=(const TypeInformationParameter &type)
Definition QosPolicies.hpp:2554
void clear() override
Clears the QosPolicy object.
Definition QosPolicies.hpp:2585
This class represents the union TypeObject defined by the user in the IDL file.
Definition dds_xtypes_typeobject.hpp:23463
Class BuiltinAttributes, to define the behavior of the RTPSParticipant builtin protocols.
Definition RTPSParticipantAttributes.hpp:352
static FASTDDS_EXPORTED_API bool isIPv4(const std::string &address)
Check whether a string contains an IPv4 format.
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
ParameterId_t
Enum for the unique parameter identifier.
Definition ParameterTypes.hpp:70
#define PARAMETER_TIME_LENGTH
Definition ParameterTypes.hpp:953
#define PARAMETER_BOOL_LENGTH
Definition ParameterTypes.hpp:795
@ PID_TOPIC_DATA
Definition ParameterTypes.hpp:78
@ PID_DURABILITY_SERVICE
Definition ParameterTypes.hpp:80
@ PID_LIVELINESS
Definition ParameterTypes.hpp:83
@ PID_OWNERSHIP
Definition ParameterTypes.hpp:89
@ PID_LATENCY_BUDGET
Definition ParameterTypes.hpp:82
@ PID_RESOURCE_LIMITS
Definition ParameterTypes.hpp:88
@ PID_DATASHARING
Definition ParameterTypes.hpp:174
@ PID_RELIABILITY
Definition ParameterTypes.hpp:84
@ PID_DURABILITY
Definition ParameterTypes.hpp:79
@ PID_USER_DATA
Definition ParameterTypes.hpp:74
@ PID_DEADLINE
Definition ParameterTypes.hpp:81
@ PID_TYPE_IDV1
Definition ParameterTypes.hpp:143
@ PID_TYPE_INFORMATION
Definition ParameterTypes.hpp:147
@ PID_DESTINATION_ORDER
Definition ParameterTypes.hpp:86
@ PID_PRESENTATION
Definition ParameterTypes.hpp:91
@ PID_LIFESPAN
Definition ParameterTypes.hpp:85
@ PID_DISABLE_POSITIVE_ACKS
Definition ParameterTypes.hpp:173
@ PID_TYPE_CONSISTENCY_ENFORCEMENT
Definition ParameterTypes.hpp:146
@ PID_OWNERSHIP_STRENGTH
Definition ParameterTypes.hpp:90
@ PID_PARTITION
Definition ParameterTypes.hpp:92
@ PID_TRANSPORT_PRIORITY
Definition ParameterTypes.hpp:94
@ PID_TIME_BASED_FILTER
Definition ParameterTypes.hpp:93
@ PID_GROUP_DATA
Definition ParameterTypes.hpp:77
@ PID_HISTORY
Definition ParameterTypes.hpp:87
@ PID_TYPE_OBJECTV1
Definition ParameterTypes.hpp:144
@ PID_DATA_REPRESENTATION
Definition ParameterTypes.hpp:145
Definition QosPolicies.hpp:2489
Definition BuiltinTopicKey.hpp:26
QosPolicyId_t
The identifier for each QosPolicy.
Definition QosPolicies.hpp:56
@ HISTORY_QOS_POLICY_ID
Definition QosPolicies.hpp:72
@ TIMEBASEDFILTER_QOS_POLICY_ID
Definition QosPolicies.hpp:68
@ TRANSPORTPRIORITY_QOS_POLICY_ID
Definition QosPolicies.hpp:79
@ RESOURCELIMITS_QOS_POLICY_ID
Definition QosPolicies.hpp:73
@ DATAREPRESENTATION_QOS_POLICY_ID
Definition QosPolicies.hpp:84
@ RELIABILITY_QOS_POLICY_ID
Definition QosPolicies.hpp:70
@ PUBLISHMODE_QOS_POLICY_ID
Definition QosPolicies.hpp:91
@ RTPSRELIABLEREADER_QOS_POLICY_ID
Definition QosPolicies.hpp:94
@ LATENCYBUDGET_QOS_POLICY_ID
Definition QosPolicies.hpp:64
@ NEXT_QOS_POLICY_ID
Definition QosPolicies.hpp:101
@ PRESENTATION_QOS_POLICY_ID
Definition QosPolicies.hpp:62
@ TYPECONSISTENCYENFORCEMENT_QOS_POLICY_ID
Definition QosPolicies.hpp:85
@ ENTITYFACTORY_QOS_POLICY_ID
Definition QosPolicies.hpp:74
@ TRANSPORTCONFIG_QOS_POLICY_ID
Definition QosPolicies.hpp:96
@ USERDATA_QOS_POLICY_ID
Definition QosPolicies.hpp:60
@ WRITERRESOURCELIMITS_QOS_POLICY_ID
Definition QosPolicies.hpp:99
@ WRITERDATALIFECYCLE_QOS_POLICY_ID
Definition QosPolicies.hpp:75
@ PARTITION_QOS_POLICY_ID
Definition QosPolicies.hpp:69
@ READERDATALIFECYCLE_QOS_POLICY_ID
Definition QosPolicies.hpp:76
@ RTPSENDPOINT_QOS_POLICY_ID
Definition QosPolicies.hpp:93
@ RTPSRELIABLEWRITER_QOS_POLICY_ID
Definition QosPolicies.hpp:95
@ DISABLEPOSITIVEACKS_QOS_POLICY_ID
Definition QosPolicies.hpp:88
@ PARTICIPANTRESOURCELIMITS_QOS_POLICY_ID
Definition QosPolicies.hpp:89
@ GROUPDATA_QOS_POLICY_ID
Definition QosPolicies.hpp:78
@ TYPECONSISTENCY_QOS_POLICY_ID
Definition QosPolicies.hpp:97
@ LIVELINESS_QOS_POLICY_ID
Definition QosPolicies.hpp:67
@ OWNERSHIP_QOS_POLICY_ID
Definition QosPolicies.hpp:65
@ OWNERSHIPSTRENGTH_QOS_POLICY_ID
Definition QosPolicies.hpp:66
@ LIFESPAN_QOS_POLICY_ID
Definition QosPolicies.hpp:80
@ READERRESOURCELIMITS_QOS_POLICY_ID
Definition QosPolicies.hpp:92
@ WIREPROTOCOLCONFIG_QOS_POLICY_ID
Definition QosPolicies.hpp:98
@ DEADLINE_QOS_POLICY_ID
Definition QosPolicies.hpp:63
@ TOPICDATA_QOS_POLICY_ID
Definition QosPolicies.hpp:77
@ DESTINATIONORDER_QOS_POLICY_ID
Definition QosPolicies.hpp:71
@ DURABILITYSERVICE_QOS_POLICY_ID
Definition QosPolicies.hpp:81
@ DURABILITY_QOS_POLICY_ID
Definition QosPolicies.hpp:61
@ INVALID_QOS_POLICY_ID
Definition QosPolicies.hpp:57
@ PROPERTYPOLICY_QOS_POLICY_ID
Definition QosPolicies.hpp:90
DataSharingKind
Data sharing configuration kinds.
Definition QosPolicies.hpp:2928
@ ON
Activate the use of DataSharing.
Definition QosPolicies.hpp:2938
@ OFF
Disable the use of DataSharing.
Definition QosPolicies.hpp:2942
@ AUTO
Automatic configuration.
Definition QosPolicies.hpp:2933
const ReturnCode_t RETCODE_BAD_PARAMETER
Definition DDSReturnCode.hpp:64
static bool operator==(const Time_t &t1, const Time_t &t2)
Comparison assignment.
Definition Time_t.hpp:101
std::bitset< NEXT_QOS_POLICY_ID > PolicyMask
Definition QosPolicies.hpp:104
LivelinessQosPolicyKind
Enum LivelinessQosPolicyKind, different kinds of liveliness for LivelinessQosPolicy.
Definition QosPolicies.hpp:458
@ AUTOMATIC_LIVELINESS_QOS
The infrastructure will automatically signal liveliness for the DataWriters at least as often as requ...
Definition QosPolicies.hpp:462
@ MANUAL_BY_PARTICIPANT_LIVELINESS_QOS
The Service will assume that as long as at least one Entity within the DomainParticipant has asserted...
Definition QosPolicies.hpp:467
@ MANUAL_BY_TOPIC_LIVELINESS_QOS
The Service will only assume liveliness of the DataWriter if the application has asserted liveliness ...
Definition QosPolicies.hpp:471
const int32_t LENGTH_UNLIMITED
Definition Types.hpp:28
TypeConsistencyKind
Definition QosPolicies.hpp:2113
@ ALLOW_TYPE_COERCION
The DataWriter and the DataReader need not support the same data type in order for them to communicat...
Definition QosPolicies.hpp:2122
@ DISALLOW_TYPE_COERCION
The DataWriter and the DataReader must support the same data type in order for them to communicate.
Definition QosPolicies.hpp:2117
ReliabilityQosPolicyKind
Enum ReliabilityQosPolicyKind, different kinds of reliability for ReliabilityQosPolicy.
Definition QosPolicies.hpp:548
@ RELIABLE_RELIABILITY_QOS
Specifies the Service will attempt to deliver all samples in its history.
Definition QosPolicies.hpp:561
@ BEST_EFFORT_RELIABILITY_QOS
Indicates that it is acceptable to not retry propagation of any samples.
Definition QosPolicies.hpp:553
enum eprosima::fastdds::dds::DataRepresentationId DataRepresentationId_t
Enum DataRepresentationId, different kinds of topic data representation.
enum eprosima::fastdds::dds::DurabilityQosPolicyKind DurabilityQosPolicyKind_t
Enum DurabilityQosPolicyKind_t, different kinds of durability for DurabilityQosPolicy.
OwnershipQosPolicyKind
Enum OwnershipQosPolicyKind, different kinds of ownership for OwnershipQosPolicy.
Definition QosPolicies.hpp:631
@ SHARED_OWNERSHIP_QOS
Indicates shared ownership for each instance.
Definition QosPolicies.hpp:636
@ EXCLUSIVE_OWNERSHIP_QOS
Indicates each instance can only be owned by one DataWriter, but the owner of an instance can change ...
Definition QosPolicies.hpp:642
Time_t Duration_t
Definition Time_t.hpp:91
fastdds::rtps::PropertyPolicy PropertyPolicyQos
Property policies.
Definition QosPolicies.hpp:2631
PublishModeQosPolicyKind
Enum PublishModeQosPolicyKind, different kinds of publication synchronism.
Definition QosPolicies.hpp:2009
@ ASYNCHRONOUS_PUBLISH_MODE
Asynchronous publication mode.
Definition QosPolicies.hpp:2011
@ SYNCHRONOUS_PUBLISH_MODE
Synchronous publication mode (default for writers).
Definition QosPolicies.hpp:2010
const ReturnCode_t RETCODE_OK
Definition DDSReturnCode.hpp:61
fastdds::rtps::RTPSParticipantAllocationAttributes ParticipantResourceLimitsQos
Holds allocation limits affecting collections managed by a participant.
Definition QosPolicies.hpp:2628
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
PresentationQosPolicyAccessScopeKind
Enum PresentationQosPolicyAccessScopeKind, different kinds of Presentation Policy order for Presentat...
Definition QosPolicies.hpp:1124
@ INSTANCE_PRESENTATION_QOS
Scope spans only a single instance.
Definition QosPolicies.hpp:1130
@ TOPIC_PRESENTATION_QOS
Scope spans to all instances within the same DataWriter (or DataReader), but not across instances in ...
Definition QosPolicies.hpp:1135
@ GROUP_PRESENTATION_QOS
Scope spans to all instances belonging to DataWriter (or DataReader) entities within the same Publish...
Definition QosPolicies.hpp:1139
FASTDDS_TODO_BEFORE(4, 0, "Remove 'hasChanged' and 'send_always_' as they were replaced by 'should_be_sent'.")
Class QosPolicy, base for all QoS policies defined for Writers and Readers.
constexpr DataRepresentationId_t DEFAULT_DATA_REPRESENTATION
Default DataRepresentationId used in Fast DDS.
Definition QosPolicies.hpp:2057
DurabilityQosPolicyKind
Enum DurabilityQosPolicyKind_t, different kinds of durability for DurabilityQosPolicy.
Definition QosPolicies.hpp:244
@ TRANSIENT_LOCAL_DURABILITY_QOS
For TRANSIENT_LOCAL, the service is only required to keep the data in the memory of the DataWriter th...
Definition QosPolicies.hpp:255
@ TRANSIENT_DURABILITY_QOS
For TRANSIENT, the service is only required to keep the data in memory and not in permanent storage; ...
Definition QosPolicies.hpp:260
@ PERSISTENT_DURABILITY_QOS
Data is kept on permanent storage, so that they can outlive a system session.
Definition QosPolicies.hpp:266
@ VOLATILE_DURABILITY_QOS
The Service does not need to keep any samples of data-instances on behalf of any DataReader that is n...
Definition QosPolicies.hpp:250
HistoryQosPolicyKind
Enum HistoryQosPolicyKind, different kinds of History Qos for HistoryQosPolicy.
Definition QosPolicies.hpp:1621
@ KEEP_LAST_HISTORY_QOS
On the publishing side, the Service will only attempt to keep the most recent “depth” samples of each...
Definition QosPolicies.hpp:1628
@ KEEP_ALL_HISTORY_QOS
On the publishing side, the Service will attempt to keep all samples (representing each value written...
Definition QosPolicies.hpp:1636
DestinationOrderQosPolicyKind
Enum DestinationOrderQosPolicyKind, different kinds of destination order for DestinationOrderQosPolic...
Definition QosPolicies.hpp:694
@ BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
Indicates that data is ordered based on a timestamp placed at the source (by the Service or by the ap...
Definition QosPolicies.hpp:705
@ BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS
Indicates that data is ordered based on the reception time at each Subscriber.
Definition QosPolicies.hpp:700
enum eprosima::fastdds::dds::PublishModeQosPolicyKind PublishModeQosPolicyKind_t
Enum PublishModeQosPolicyKind, different kinds of publication synchronism.
DataRepresentationId
Enum DataRepresentationId, different kinds of topic data representation.
Definition QosPolicies.hpp:2050
@ XCDR2_DATA_REPRESENTATION
Extended CDR Encoding version 2.
Definition QosPolicies.hpp:2053
@ XML_DATA_REPRESENTATION
XML Data Representation (Unsupported).
Definition QosPolicies.hpp:2052
@ XCDR_DATA_REPRESENTATION
Extended CDR Encoding version 1.
Definition QosPolicies.hpp:2051
FASTDDS_EXPORTED_API const char *const FASTDDS_FLOW_CONTROLLER_DEFAULT
Name of the default flow controller.
NetmaskFilterKind
Definition NetmaskFilterKind.hpp:31
@ AUTO
Definition NetmaskFilterKind.hpp:33
uint8_t octet
Definition Types.hpp:83
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...
@ PREALLOCATED_WITH_REALLOC_MEMORY_MODE
Default size preallocated, requires reallocation when a bigger message arrives.
Definition ResourceManagement.hpp:35
DurabilityKind_t
Durability kind.
Definition Types.hpp:56
@ TRANSIENT
Transient Durability.
Definition Types.hpp:59
@ TRANSIENT_LOCAL
Transient Local Durability.
Definition Types.hpp:58
@ PERSISTENT
NOT IMPLEMENTED.
Definition Types.hpp:60
@ VOLATILE
Volatile Durability.
Definition Types.hpp:57
eProsima namespace.
Definition EntityId_t.hpp:388
Specifies the configuration of a resource limited collection.
Definition ResourceLimitedContainerConfig.hpp:36
static ResourceLimitedContainerConfig dynamic_allocation_configuration(size_t increment=1u)
Return a resource limits configuration for a linearly growing, dynamically allocated collection.
Definition ResourceLimitedContainerConfig.hpp:71
static ResourceLimitedContainerConfig fixed_size_configuration(size_t size)
Return a resource limits configuration for a fixed size collection.
Definition ResourceLimitedContainerConfig.hpp:60
Structure GuidPrefix_t, Guid Prefix of GUID_t.
Definition GuidPrefix_t.hpp:37
Holds allocation limits affecting collections managed by a participant.
Definition RTPSParticipantAllocationAttributes.hpp:129
Structure SerializedPayload_t.
Definition SerializedPayload.hpp:59
octet * data
Pointer to the data.
Definition SerializedPayload.hpp:68
uint32_t max_size
Maximum size of the payload.
Definition SerializedPayload.hpp:70
uint32_t length
Actual length of the data.
Definition SerializedPayload.hpp:66
Struct ThreadSettings to specify various thread settings.
Definition ThreadSettings.hpp:37