Fast DDS  Version 3.6.1.0
Fast DDS
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 
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 
44 namespace eprosima {
45 namespace fastdds {
46 namespace dds {
47 
55 enum 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 
104 using PolicyMask = std::bitset<NEXT_QOS_POLICY_ID>;
105 
109 FASTDDS_TODO_BEFORE(4, 0, "Remove 'hasChanged' and 'send_always_' as they were replaced by 'should_be_sent'.");
111 {
112 public:
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 
176 protected:
177 
180 };
181 
189 {
190 public:
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 
244 {
268 
269 #define PARAMETER_KIND_LENGTH 4
270 #define PARAMETER_BOOL_LENGTH 4
271 
278 {
279 public:
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 
302  {
303  switch (kind)
304  {
305  default:
310  }
311  }
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 
346 public:
347 
353 };
354 
363 {
364 public:
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 
395 public:
396 
404 };
405 
416 {
417 public:
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 
448 public:
449 
452 };
453 
458 {
472 
474 
488 {
489 public:
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 
524 public:
525 
542 };
543 
548 {
563 
570 {
571 public:
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) &&
593  (this->max_blocking_time == b.max_blocking_time) &&
594  Parameter_t::operator ==(b) &&
596  }
597 
598  inline void clear() override
599  {
601  std::swap(*this, reset);
602  }
603 
604 public:
605 
611 
623 };
624 
625 
626 
631 {
643 };
644 
652 {
653 public:
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 
684 public:
685 
688 };
689 
694 {
706 };
707 
708 
709 
719 {
720 public:
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 
751 public:
752 
755 };
756 
757 
762  public fastdds::ResourceLimitedVector<fastdds::rtps::octet>
763 {
765 
766 public:
767 
768  FASTDDS_EXPORTED_API GenericDataQosPolicy(
769  ParameterId_t pid)
770  : Parameter_t(pid, 0)
771  , QosPolicy(false)
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)
782  {
783  }
784 
793  FASTDDS_EXPORTED_API GenericDataQosPolicy(
794  const GenericDataQosPolicy& data)
796  , QosPolicy(false)
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)
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 
888  size_t size)
889  {
890  if (size > 0)
891  {
894  }
895  else
896  {
898  }
899  }
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
1057 class UserDataQosPolicy : public GenericDataQosPolicy
1058 {
1059 };
1070 class TopicDataQosPolicy : public GenericDataQosPolicy
1071 {
1072 };
1084 class GroupDataQosPolicy : public GenericDataQosPolicy
1085 {
1086 };
1087 #endif // DOXYGEN_DOCUMENTATION
1089 TEMPLATE_DATA_QOS_POLICY(UserDataQosPolicy, PID_USER_DATA)
1090 TEMPLATE_DATA_QOS_POLICY(TopicDataQosPolicy, PID_TOPIC_DATA)
1091 TEMPLATE_DATA_QOS_POLICY(GroupDataQosPolicy, PID_GROUP_DATA)
1092 
1093 
1103 class TimeBasedFilterQosPolicy : public Parameter_t, public QosPolicy
1104 {
1105 public:
1106 
1110  FASTDDS_EXPORTED_API TimeBasedFilterQosPolicy()
1112  , QosPolicy(false)
1113  , minimum_separation(0, 0)
1114  {
1115  }
1116 
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  }
1136 public:
1137 
1140 };
1141 
1146 {
1162 };
1163 
1164 #define PARAMETER_PRESENTATION_LENGTH 8
1165 
1177 class PresentationQosPolicy : public Parameter_t, public QosPolicy
1178 {
1179 public:
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 
1214 public:
1215 
1223  bool coherent_access;
1229  bool ordered_access;
1230 };
1231 
1232 
1233 class Partition_t
1235 
1236  friend class PartitionQosPolicy;
1237 
1238 private:
1239 
1240  const char* partition_;
1241 
1242 private:
1243 
1244  Partition_t()
1245  {
1246  partition_ = nullptr;
1247  }
1248 
1249 public:
1250 
1256  explicit Partition_t(
1257  const void* ptr)
1258  {
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 
1290  const char* name() const
1291  {
1292  return partition_ + 4;
1293  }
1295 };
1307 class PartitionQosPolicy : public Parameter_t, public QosPolicy
1308 {
1309 public:
1310 
1311  class const_iterator
1312  {
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 
1328  const fastdds::rtps::octet* ptr)
1329  : ptr_(ptr)
1330  , value_ (ptr_)
1331  {
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_;
1388  Partition_t value_;
1389 
1390  };
1391 
1392 public:
1393 
1397  FASTDDS_EXPORTED_API PartitionQosPolicy()
1399  , QosPolicy(false)
1400  , max_size_ (0)
1401  , Npartitions_ (0)
1402  {
1403  }
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  }
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_) &&
1451  }
1452 
1454  const PartitionQosPolicy& b)
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 
1473  const_iterator begin() const
1474  {
1475  return const_iterator(partitions_.data);
1476  }
1477 
1483  const_iterator end() const
1484  {
1485  return const_iterator(partitions_.data + partitions_.length);
1486  }
1487 
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 
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 
1618  FASTDDS_EXPORTED_API inline void names(
1619  std::vector<std::string>& nam)
1620  {
1621  clear();
1622  for (auto it = nam.begin(); it != nam.end(); ++it)
1623  {
1624  push_back(it->c_str());
1625  }
1626  hasChanged = true;
1627  }
1629 private:
1630 
1632  uint32_t max_size_;
1636  uint32_t Npartitions_;
1637 };
1638 
1643 {
1659 };
1660 
1672 class HistoryQosPolicy : public Parameter_t, public QosPolicy
1673 {
1674 public:
1675 
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
1694  {
1695  return (this->kind == b.kind) &&
1696  (this->depth == b.depth) &&
1697  Parameter_t::operator ==(b) &&
1699  }
1700 
1701  inline void clear() override
1702  {
1704  std::swap(*this, reset);
1705  }
1706 
1707 public:
1708 
1716  int32_t depth;
1717 };
1718 
1724 class ResourceLimitsQosPolicy : public Parameter_t, public QosPolicy
1725 {
1726 public:
1727 
1736  int32_t max_samples;
1743  int32_t max_instances;
1750  int32_t max_samples_per_instance;
1755  int32_t allocated_samples;
1760  int32_t extra_samples;
1761 
1765  FASTDDS_EXPORTED_API ResourceLimitsQosPolicy()
1767  , QosPolicy(false)
1771  , allocated_samples(100)
1772  , extra_samples(1)
1773  {
1774  }
1775 
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 
1810 class DurabilityServiceQosPolicy : public Parameter_t, public QosPolicy
1812 public:
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)
1825  {
1826  }
1827 
1831  virtual FASTDDS_EXPORTED_API ~DurabilityServiceQosPolicy() = default;
1832 
1833  bool operator ==(
1834  const DurabilityServiceQosPolicy& b) const
1835  {
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 
1851 public:
1852 
1869  int32_t history_depth;
1877  int32_t max_samples;
1883  int32_t max_instances;
1890  int32_t max_samples_per_instance;
1891 };
1892 
1898 class LifespanQosPolicy : public Parameter_t, public QosPolicy
1899 {
1900 public:
1901 
1905  FASTDDS_EXPORTED_API LifespanQosPolicy()
1907  , QosPolicy(true)
1908  , duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
1909  {
1910  }
1911 
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);
1929  }
1930 
1931 public:
1932 
1935 };
1936 
1944 class OwnershipStrengthQosPolicy : public Parameter_t, public QosPolicy
1945 {
1946 public:
1947 
1951  FASTDDS_EXPORTED_API OwnershipStrengthQosPolicy()
1953  , QosPolicy(false)
1954  , value(0)
1955  {
1956  }
1957 
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
1972  {
1974  std::swap(*this, reset);
1975  }
1976 
1977 public:
1978 
1980  uint32_t value;
1981 };
1982 
1983 
1990 {
1991 public:
1992 
1994  int32_t value;
1995 
1999  FASTDDS_EXPORTED_API TransportPriorityQosPolicy()
2001  , QosPolicy(false)
2002  , value(0)
2003  {
2004  }
2005 
2009  virtual FASTDDS_EXPORTED_API ~TransportPriorityQosPolicy() = default;
2011  bool operator ==(
2013  {
2014  return (this->value == b.value) &&
2017  }
2018 
2019  inline void clear() override
2020  {
2022  std::swap(*this, reset);
2023  }
2024 
2025 };
2026 
2031 {
2035 
2039 class PublishModeQosPolicy : public QosPolicy
2040 {
2041 public:
2042 
2045 
2052  inline void clear() override
2053  {
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 
2071 typedef enum DataRepresentationId : int16_t
2072 {
2077 
2079 constexpr DataRepresentationId_t DEFAULT_DATA_REPRESENTATION {DataRepresentationId_t::XCDR_DATA_REPRESENTATION};
2080 
2091 class DataRepresentationQosPolicy : public Parameter_t, public QosPolicy
2092 {
2093 public:
2094 
2096  std::vector<DataRepresentationId_t> m_value;
2097 
2101  FASTDDS_EXPORTED_API DataRepresentationQosPolicy()
2103  , QosPolicy(false)
2104  {
2105  }
2106 
2110  virtual FASTDDS_EXPORTED_API ~DataRepresentationQosPolicy() override = default;
2111 
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 
2134 enum TypeConsistencyKind : uint16_t
2135 {
2145 };
2146 
2155 public:
2156 
2183  bool m_ignore_member_names;
2196 
2200  FASTDDS_EXPORTED_API TypeConsistencyEnforcementQosPolicy()
2201  : Parameter_t(PID_TYPE_CONSISTENCY_ENFORCEMENT, 8) // 2 + 5 + 1 alignment byte
2202  , QosPolicy(true)
2203  {
2205  m_ignore_sequence_bounds = true;
2206  m_ignore_string_bounds = true;
2207  m_ignore_member_names = false;
2209  m_force_type_validation = false;
2210  }
2211 
2215  virtual FASTDDS_EXPORTED_API ~TypeConsistencyEnforcementQosPolicy() override = default;
2216 
2217  bool operator ==(
2218  const TypeConsistencyEnforcementQosPolicy& b) const
2219  {
2220  return m_kind == b.m_kind &&
2228  }
2229 
2230  inline void clear() override
2231  {
2233  std::swap(*this, reset);
2234  }
2235 
2236 };
2237 
2243 class DisablePositiveACKsQosPolicy : public Parameter_t, public QosPolicy
2244 {
2245 public:
2246 
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 &&
2267  duration == b.duration &&
2270  }
2271 
2272  inline void clear() override
2273  {
2275  std::swap(*this, reset);
2276  }
2277 
2278 public:
2279 
2281  bool enabled;
2284 };
2285 
2289 class TypeIdV1 : public Parameter_t, public QosPolicy
2291 public:
2292 
2295 
2296 
2300  FASTDDS_EXPORTED_API TypeIdV1()
2302  , QosPolicy(false)
2304  {
2305  }
2306 
2312  FASTDDS_EXPORTED_API TypeIdV1(
2313  const TypeIdV1& type)
2314  : Parameter_t(type.Pid, type.length)
2315  , QosPolicy(type.send_always_)
2317  {
2318  }
2319 
2325  FASTDDS_EXPORTED_API TypeIdV1(
2326  const xtypes::TypeIdentifier& identifier)
2328  , QosPolicy(false)
2329  , m_type_identifier(identifier)
2330  {
2331  }
2332 
2338  FASTDDS_EXPORTED_API TypeIdV1(
2339  TypeIdV1&& type)
2340  : Parameter_t(type.Pid, type.length)
2341  , QosPolicy(type.send_always_)
2342  , m_type_identifier(std::move(type.m_type_identifier))
2343  {
2344  }
2345 
2346  FASTDDS_EXPORTED_API TypeIdV1& operator =(
2347  const TypeIdV1& type)
2348  {
2349  Pid = type.Pid;
2350  length = type.length;
2351  send_always_ = type.send_always_;
2352 
2353  m_type_identifier = type.m_type_identifier;
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 
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;
2385  }
2386 
2392  FASTDDS_EXPORTED_API const xtypes::TypeIdentifier& get() const
2393  {
2394  return m_type_identifier;
2395  }
2396 
2397 };
2398 
2402 class TypeObjectV1 : public Parameter_t, public QosPolicy
2403 {
2404 public:
2405 
2408 
2412  FASTDDS_EXPORTED_API TypeObjectV1()
2414  , QosPolicy(false)
2416  {
2417  }
2418 
2424  FASTDDS_EXPORTED_API TypeObjectV1(
2425  const TypeObjectV1& type)
2426  : Parameter_t(type.Pid, type.length)
2427  , QosPolicy(type.send_always_)
2429  {
2430  }
2431 
2437  FASTDDS_EXPORTED_API TypeObjectV1(
2438  const xtypes::TypeObject& type)
2440  , QosPolicy(false)
2441  , m_type_object(type)
2442  {
2443  }
2444 
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;
2463  send_always_ = type.send_always_;
2464 
2465  m_type_object = type.m_type_object;
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 
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)
2494  {
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 
2511 namespace xtypes {
2512 
2516 class TypeInformationParameter : public Parameter_t, public QosPolicy
2518 public:
2519 
2522 
2526  FASTDDS_EXPORTED_API TypeInformationParameter()
2528  , QosPolicy(false)
2529  , type_information()
2530  , assigned_(false)
2531  {
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_)
2545  {
2546  }
2547 
2553  FASTDDS_EXPORTED_API TypeInformationParameter(
2556  , QosPolicy(false)
2557  , type_information(info)
2558  , assigned_(true)
2559  {
2560  }
2561 
2567  FASTDDS_EXPORTED_API TypeInformationParameter(
2568  TypeInformationParameter&& type)
2569  : Parameter_t(type.Pid, type.length)
2570  , QosPolicy(type.send_always_)
2571  , type_information(std::move(type.type_information))
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;
2581  send_always_ = type.send_always_;
2582 
2584  assigned_ = type.assigned_;
2586  return *this;
2587  }
2588 
2589  FASTDDS_EXPORTED_API TypeInformationParameter& operator =(
2590  TypeInformationParameter&& type)
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 
2627  FASTDDS_EXPORTED_API void assigned(
2628  bool value)
2629  {
2630  assigned_ = value;
2631  }
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 
2641 private:
2644  bool assigned_;
2645 };
2646 
2647 } // namespace xtypes
2648 
2651 
2656 class WireProtocolConfigQos : public QosPolicy
2657 {
2658 
2659 public:
2660 
2664  FASTDDS_EXPORTED_API WireProtocolConfigQos()
2665  : QosPolicy(false)
2666  , participant_id(-1)
2667  , easy_mode_("")
2668  {
2669  }
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()) &&
2688  QosPolicy::operator ==(b);
2689  }
2690 
2691  inline void clear() override
2692  {
2694  std::swap(*this, reset);
2695  }
2696 
2699 
2701  int32_t participant_id;
2705 
2708 
2714 
2725 
2729  bool ignore_non_matching_locators = false;
2730 
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 
2768  const std::string& easy_mode() const
2769  {
2770  return easy_mode_;
2771  }
2772 
2773 private:
2774 
2776  std::string easy_mode_;
2777 };
2781 {
2782 public:
2783 
2787  FASTDDS_EXPORTED_API TransportConfigQos()
2788  : QosPolicy(false)
2789  , use_builtin_transports(true)
2794  {
2795  }
2796 
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 
2831  uint32_t send_socket_buffer_size;
2836  uint32_t listen_socket_buffer_size;
2840 
2848 
2851 };
2852 
2854 FASTDDS_TODO_BEFORE(4, 0, "Make all eProsima extended QoS inherit from Parameter_t and QosPolicy if possible.");
2855 class RTPSEndpointQos
2856 {
2857 public:
2858 
2859  FASTDDS_EXPORTED_API RTPSEndpointQos() = default;
2860 
2861  virtual FASTDDS_EXPORTED_API ~RTPSEndpointQos() = default;
2862 
2863  inline void clear()
2864  {
2865  RTPSEndpointQos reset = RTPSEndpointQos();
2866  std::swap(*this, reset);
2867  }
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 
2890 
2893 
2895  bool ignore_non_matching_locators = false;
2896 
2898  int16_t user_defined_id = -1;
2899 
2901  int16_t entity_id = -1;
2902 
2906 };
2907 
2910 {
2911 public:
2912 
2916  FASTDDS_EXPORTED_API WriterResourceLimitsQos()
2918  , reader_filters_allocation(0, 32u, 1u)
2919  {
2920  }
2925  virtual FASTDDS_EXPORTED_API ~WriterResourceLimitsQos() = default;
2926 
2927  inline void clear()
2928  {
2930  std::swap(*this, reset);
2931  }
2932 
2934  const WriterResourceLimitsQos& b) const
2935  {
2938  }
2939 
2944 };
2945 
2950 {
2955  AUTO = 0x01,
2960  ON = 0x02,
2964  OFF = 0x03
2965 };
2966 
2967 
2973 class DataSharingQosPolicy : public Parameter_t, public QosPolicy
2974 {
2975 public:
2980  FASTDDS_EXPORTED_API DataSharingQosPolicy()
2982  , QosPolicy(true)
2983  {
2984  //Needed to generate the automatic domain ID
2985  automatic();
2986  }
2987 
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;
3027  }
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  }
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
3094  {
3095  return max_domains_;
3096  }
3097 
3104  FASTDDS_EXPORTED_API void automatic()
3105  {
3106  setup (AUTO, "", std::vector<uint16_t>());
3107  }
3108 
3116  FASTDDS_EXPORTED_API void automatic(
3117  const std::vector<uint16_t>& domain_ids)
3118  {
3119  setup (AUTO, "", domain_ids);
3120  }
3121 
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 
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 
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 
3183  FASTDDS_EXPORTED_API void off()
3184  {
3185  setup (OFF, "", std::vector<uint16_t>());
3186  }
3187 
3193  FASTDDS_EXPORTED_API void add_domain_id(
3194  uint16_t id)
3195  {
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)
3205  {
3206  if (max_domains_ == 0 || domain_ids_.size() < max_domains_)
3207  {
3208  domain_ids_.push_back(id);
3209  }
3210  }
3211 
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 
3243 private:
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
value_type * data()
Definition: ResourceLimitedVector.hpp:517
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)
Assign vector content.
Definition: ResourceLimitedVector.hpp:318
collection_type collection_
Definition: ResourceLimitedVector.hpp:544
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 DataSharingKind & kind() const
Definition: QosPolicies.hpp:3027
FASTDDS_EXPORTED_API const std::vector< uint64_t > & domain_ids() const
Gets the set of DataSharing domain IDs.
Definition: QosPolicies.hpp:3053
bool operator==(const DataSharingQosPolicy &b) const
Definition: QosPolicies.hpp:3007
FASTDDS_EXPORTED_API DataSharingQosPolicy()
Constructor.
Definition: QosPolicies.hpp:2958
FASTDDS_EXPORTED_API const uint32_t & max_domains() const
Definition: QosPolicies.hpp:3071
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
FASTDDS_EXPORTED_API const std::string & shm_directory() const
Definition: QosPolicies.hpp:3035
DataReader expects a new sample updating the value of each instance at least once every deadline peri...
Definition: QosPolicies.hpp:363
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
Controls the criteria used to determine the logical order among changes made by Publisher entities to...
Definition: QosPolicies.hpp:719
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.
This policy expresses if the data should ‘outlive’ their writing time.
Definition: QosPolicies.hpp:278
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
Controls the behavior of the entity when acting as a factory for other entities.
Definition: QosPolicies.hpp:189
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 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 const collection_type & data_vec() const
Returns raw data vector.
Definition: QosPolicies.hpp:926
FASTDDS_EXPORTED_API const collection_type & getValue() const
Returns raw data vector.
Definition: QosPolicies.hpp:962
FASTDDS_EXPORTED_API GenericDataQosPolicy(ParameterId_t pid)
Definition: QosPolicies.hpp:768
void resize(size_t new_size)
Definition: QosPolicies.hpp:901
FASTDDS_EXPORTED_API collection_type & data_vec()
Returns raw data vector.
Definition: QosPolicies.hpp:936
GenericDataQosPolicy & operator=(const collection_type &b)
Copies data from underlying collection type.
Definition: QosPolicies.hpp:834
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
const collection_type & dataVec() const
Definition: QosPolicies.hpp:910
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
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
Specifies the maximum acceptable delay from the time the data is written until the data is inserted i...
Definition: QosPolicies.hpp:416
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
Determines the mechanism and parameters used by the application to determine whether an Entity is “ac...
Definition: QosPolicies.hpp:488
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
Specifies whether it is allowed for multiple DataWriters to write the same instance of the data and i...
Definition: QosPolicies.hpp:652
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
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
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
FASTDDS_EXPORTED_API const std::vector< std::string > names() const
Returns partition names.
Definition: QosPolicies.hpp:1578
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
PartitionQosPolicy & operator=(const PartitionQosPolicy &b)
Definition: QosPolicies.hpp:1431
Specifies how the samples representing changes to data instances are presented to the subscribing app...
Definition: QosPolicies.hpp:1156
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.
virtual bool send_always() const
Whether it should always be sent.
Definition: QosPolicies.hpp:166
QosPolicy()
Constructor without parameters.
Definition: QosPolicies.hpp:120
QosPolicy & operator=(const QosPolicy &b)=default
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
Indicates the reliability of the endpoint.
Definition: QosPolicies.hpp:570
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
bool operator==(const TimeBasedFilterQosPolicy &b) const
Definition: QosPolicies.hpp:1100
FASTDDS_EXPORTED_API TimeBasedFilterQosPolicy()
Constructor.
Definition: QosPolicies.hpp:1088
virtual FASTDDS_EXPORTED_API ~TimeBasedFilterQosPolicy()=default
Destructor.
void clear() override
Clears the QosPolicy object.
Definition: QosPolicies.hpp:1108
Qos Policy to configure the transport layer.
Definition: QosPolicies.hpp:2759
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
void clear() override
Clears the QosPolicy object.
Definition: QosPolicies.hpp:2353
FASTDDS_EXPORTED_API const xtypes::TypeIdentifier & get() const
Getter for the TypeIndentifier.
Definition: QosPolicies.hpp:2370
Class TypeObjectV1.
Definition: QosPolicies.hpp:2381
virtual FASTDDS_EXPORTED_API ~TypeObjectV1() override=default
Destructor.
xtypes::TypeObject m_type_object
Type Object.
Definition: QosPolicies.hpp:2385
FASTDDS_EXPORTED_API TypeObjectV1 & operator=(const TypeObjectV1 &type)
Definition: QosPolicies.hpp:2436
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
Qos Policy that configures the wire protocol.
Definition: QosPolicies.hpp:2635
const std::string & easy_mode() const
Getter for ROS 2 Easy Mode IP.
Definition: QosPolicies.hpp:2746
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
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:34
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: DomainParticipant.hpp:46
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
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.
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
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
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
uint8_t octet
Definition: Types.hpp:83
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
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:41
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
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
size_t maximum
Maximum number of elements allowed in the collection.
Definition: ResourceLimitedContainerConfig.hpp:51
Structure Time_t, used to describe times at a DDS level.
Definition: Time_t.hpp:36
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
bool copy(const SerializedPayload_t *serData, bool with_limit=true)
Copy another structure (including allocating new space for the data).
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