Fast DDS  Version 3.6.1.0
Fast DDS
ParameterTypes.hpp
1 // Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
19 #ifndef FASTDDS_DDS_CORE_POLICY__PARAMETERTYPES_HPP
20 #define FASTDDS_DDS_CORE_POLICY__PARAMETERTYPES_HPP
21 
22 #ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
23 
24 #include <atomic>
25 #include <string>
26 #include <vector>
27 
28 #include <fastcdr/cdr/fixed_size_string.hpp>
29 
30 #include <fastdds/dds/core/Types.hpp>
31 #include <fastdds/rtps/common/InstanceHandle.hpp>
32 #include <fastdds/rtps/common/Locator.hpp>
33 #include <fastdds/rtps/common/OriginalWriterInfo.hpp>
34 #include <fastdds/rtps/common/ProductVersion_t.hpp>
35 #include <fastdds/rtps/common/SampleIdentity.hpp>
36 #include <fastdds/rtps/common/SerializedPayload.hpp>
37 #include <fastdds/rtps/common/Time_t.hpp>
38 #include <fastdds/rtps/common/Token.hpp>
39 
40 #if HAVE_SECURITY
41 #include <fastdds/rtps/attributes/EndpointSecurityAttributes.hpp>
42 #endif // if HAVE_SECURITY
43 
44 namespace eprosima {
45 namespace fastdds {
46 namespace rtps {
47 struct CDRMessage_t;
48 #if HAVE_SECURITY
49 namespace security {
50 struct ParticipantSecurityAttributes;
52 typedef uint32_t EndpointSecurityAttributesMask;
53 typedef uint32_t PluginParticipantSecurityAttributesMask;
54 typedef uint32_t ParticipantSecurityAttributesMask;
55 } // namespace security
56 #endif // HAVE_SECURITY
57 } // namespace rtps
58 
59 namespace dds {
60 
69 enum ParameterId_t : uint16_t
70 {
71  /* From Table 9.18 of DDS-RTPS 2.5 */
72  PID_PAD = 0x0000,
73  PID_SENTINEL = 0x0001,
74  PID_USER_DATA = 0x002c,
75  PID_TOPIC_NAME = 0x0005,
76  PID_TYPE_NAME = 0x0007,
77  PID_GROUP_DATA = 0x002d,
78  PID_TOPIC_DATA = 0x002e,
79  PID_DURABILITY = 0x001d,
81  PID_DEADLINE = 0x0023,
83  PID_LIVELINESS = 0x001b,
84  PID_RELIABILITY = 0x001a,
85  PID_LIFESPAN = 0x002b,
87  PID_HISTORY = 0x0040,
89  PID_OWNERSHIP = 0x001f,
91  PID_PRESENTATION = 0x0021,
92  PID_PARTITION = 0x0029,
95  PID_DOMAIN_ID = 0x000f,
96  PID_DOMAIN_TAG = 0x4014,
98  PID_VENDORID = 0x0016,
110  PID_GROUP_GUID = 0x0052,
116  PID_ENTITY_NAME = 0x0062,
118 
119  /* From table 9.20 of DDS-RTPS 2.5 - inline QoS only */
128  PID_KEY_HASH = 0x0070,
129  PID_STATUS_INFO = 0x0071,
130 
131  /* Deprecated */
132  // PID_MULTICAST_IPADDRESS = 0x0011,
133  // PID_DEFAULT_UNICAST_IPADDRESS = 0x000c,
134  // PID_DEFAULT_UNICAST_PORT = 0x000e,
135  // PID_METATRAFFIC_UNICAST_IPADDRESS = 0x0045,
136  // PID_METATRAFFIC_UNICAST_PORT = 0x000d,
137  // PID_METATRAFFIC_MULTICAST_IPADDRESS = 0x000b,
138  // PID_METATRAFFIC_MULTICAST_PORT = 0x0046,
139  // PID_PARTICIPANT_BUILTIN_ENDPOINTS = 0x0044,
140  // PID_PARTICIPANT_ENTITYID = 0x0051,
141 
142  /* From DDS-XTYPES 1.3 */
143  PID_TYPE_IDV1 = 0x0069,
148 
149  /* From table 10 of DDS-SEC 1.1 */
153 
154  /* From table 12 of DDS-SEC 1.1 */
156 
157  /* From table 13 of DDS-SEC 1.1 */
159 
160  /* From table 14 of DDS-SEC 1.1 */
161  PID_DATA_TAGS = 0x1003,
162 
163  /* From Remote Procedure Call over DDS, document "ptc/2016-03-19" V1.0 */
168 
169  /* eProsima Fast DDS extensions */
172  PID_MACHINE_ID = 0x8003,
174  PID_DATASHARING = 0x8006,
178  /* Writer specific */
183  /* Reader specific */
187  /* Participant specific */
189  /* RPC specific */
191 
192  /* eProsima Safe DDS extensions */
194 };
195 
202 {
203 public:
204 
208  FASTDDS_EXPORTED_API Parameter_t()
209  : Pid(PID_PAD)
210  , length(0)
211  {
212  }
213 
220  FASTDDS_EXPORTED_API Parameter_t(
221  ParameterId_t pid,
222  uint16_t length)
223  : Pid(pid)
224  , length(length)
225  {
226  }
227 
231  virtual FASTDDS_EXPORTED_API ~Parameter_t()
232  {
233  }
234 
236  const Parameter_t& b) const
237  {
238  return (this->Pid == b.Pid) &&
239  (this->length == b.length);
240  }
241 
242 public:
243 
247  uint16_t length;
248 };
249 
254 {
255 public:
256 
263  {
264  }
265 
273  ParameterId_t pid,
274  uint16_t in_length)
275  : Parameter_t(pid, in_length)
276  {
277  }
278 
287  ParameterId_t pid,
288  uint16_t in_length,
290  : Parameter_t(pid, in_length)
291  , key(ke)
292  {
293  }
294 
295 };
296 
297 #define PARAMETER_KEY_HASH_LENGTH 16
298 
303 {
304 public:
305 
308 
313  {
314  }
315 
323  ParameterId_t pid,
324  uint16_t in_length)
325  : Parameter_t(pid, in_length)
326  {
327  }
328 
337  ParameterId_t pid,
338  uint16_t in_length,
339  const rtps::Locator& loc)
340  : Parameter_t(pid, in_length)
341  , locator(loc)
342  {
343  }
344 
345 };
346 #define PARAMETER_LOCATOR_LENGTH 24
347 
348 
353 {
354 public:
355 
360  {
361  }
362 
370  ParameterId_t pid,
371  uint16_t in_length)
372  : Parameter_t(pid, in_length)
373  {
374  }
375 
384  ParameterId_t pid,
385  uint16_t in_length,
386  const fastcdr::string_255& strin)
387  : Parameter_t(pid, in_length)
388  , string_(strin)
389  {
390  }
391 
397  inline const char* getName() const
398  {
399  return string_.c_str();
400  }
401 
407  inline void setName(
408  const char* name)
409  {
410  string_ = name;
411  }
412 
418  inline size_t size() const
419  {
420  return string_.size();
421  }
422 
423 private:
424 
426  fastcdr::string_255 string_;
427 };
428 
433 {
434 public:
435 
437  uint32_t port;
438 
443  : port(0)
444  {
445  }
446 
454  ParameterId_t pid,
455  uint16_t in_length)
456  : Parameter_t(pid, in_length)
457  , port(0)
458  {
459  }
460 
469  ParameterId_t pid,
470  uint16_t in_length,
471  uint32_t po)
472  : Parameter_t(pid, in_length)
473  , port(po)
474  {
475  }
476 
477 };
478 
479 #define PARAMETER_PORT_LENGTH 4
480 
485 {
486 public:
487 
490 
495  {
496  }
497 
505  ParameterId_t pid,
506  uint16_t in_length)
507  : Parameter_t(pid, in_length)
508  {
509  }
510 
519  ParameterId_t pid,
520  uint16_t in_length,
521  const fastdds::rtps::GUID_t& guidin)
522  : Parameter_t(pid, in_length)
523  , guid(guidin)
524  {
525  }
526 
535  ParameterId_t pid,
536  uint16_t in_length,
538  : Parameter_t(pid, in_length)
539  {
541  }
542 
543 };
544 
545 #define PARAMETER_GUID_LENGTH 16
546 
551 {
552 public:
553 
555  uint32_t domain_id;
556 
562  {
563  }
564 
572  ParameterId_t pid,
573  uint16_t in_length)
574  : Parameter_t(pid, in_length)
576  {
578  }
579 
580 };
581 
582 #define PARAMETER_DOMAINID_LENGTH 4
583 
588 {
589 public:
590 
593 
598  {
600  }
601 
609  ParameterId_t pid,
610  uint16_t in_length)
611  : Parameter_t(pid, in_length)
612  {
614  }
615 
616 };
617 
618 #define PARAMETER_PROTOCOL_LENGTH 4
619 
624 {
625 public:
626 
629 
634  : vendorId(fastdds::rtps::c_VendorId_eProsima)
635  {
636  }
637 
645  ParameterId_t pid,
646  uint16_t in_length)
647  : Parameter_t(pid, in_length)
648  , vendorId(fastdds::rtps::c_VendorId_eProsima)
649  {
650  }
651 
652 };
653 
654 #define PARAMETER_VENDOR_LENGTH 4
655 
660 {
661 public:
662 
664 
669  {
670  }
671 
679  ParameterId_t pid,
680  uint16_t in_length)
681  : Parameter_t(pid, in_length)
682  {
683  }
684 
685 };
686 
687 #define PARAMETER_PRODUCT_VERSION_LENGTH 4
688 
693 {
694 public:
695 
698 
703  {
704  this->setIP4Address(0, 0, 0, 0);
705  }
706 
714  ParameterId_t pid,
715  uint16_t in_length)
716  : Parameter_t(pid, in_length)
717  {
718  this->setIP4Address(0, 0, 0, 0);
719  }
720 
734  {
735  address[0] = o1;
736  address[1] = o2;
737  address[2] = o3;
738  address[3] = o4;
739  }
740 
741 };
742 
743 #define PARAMETER_IP4_LENGTH 4
744 
749 {
750 public:
751 
753  bool value;
754 
759  : value(false)
760  {
761  }
762 
770  ParameterId_t pid,
771  uint16_t in_length)
772  : Parameter_t(pid, in_length)
773  , value(false)
774  {
775  }
776 
785  ParameterId_t pid,
786  uint16_t in_length,
787  bool inbool)
788  : Parameter_t(pid, in_length)
789  , value(inbool)
790  {
791  }
792 
793 };
794 
795 #define PARAMETER_BOOL_LENGTH 4
796 
801 {
802 public:
803 
805  uint8_t status;
806 
811  : status(0)
812  {
813  }
814 
822  ParameterId_t pid,
823  uint16_t in_length)
824  : Parameter_t(pid, in_length)
825  , status(0)
826  {
827  }
828 
837  ParameterId_t pid,
838  uint16_t in_length,
839  uint8_t instatus)
840  : Parameter_t(pid, in_length)
841  , status(instatus)
842  {
843  }
844 
845 };
846 
847 #define PARAMETER_STATUS_INFO_LENGTH 4
848 
853 {
854 public:
855 
858 
863  : count(0)
864  {
865  }
866 
874  ParameterId_t pid,
875  uint16_t in_length)
876  : Parameter_t(pid, in_length)
877  , count(0)
878  {
879  }
880 
881 };
882 
883 #define PARAMETER_COUNT_LENGTH 4
884 
889 {
890 public:
891 
894 
899  : entityId(ENTITYID_UNKNOWN)
900  {
901  }
902 
910  ParameterId_t pid,
911  uint16_t in_length)
912  : Parameter_t(pid, in_length)
913  , entityId(ENTITYID_UNKNOWN)
914  {
915  }
916 
917 };
918 
919 #define PARAMETER_ENTITYID_LENGTH 4
920 
925 {
926 public:
927 
930 
935  {
936  }
937 
945  ParameterId_t pid,
946  uint16_t in_length)
947  : Parameter_t(pid, in_length)
948  {
949  }
950 
951 };
952 
953 #define PARAMETER_TIME_LENGTH 8
954 
959 {
960 public:
961 
964 
969  : endpointSet(0)
970  {
971  }
972 
980  ParameterId_t pid,
981  uint16_t in_length)
982  : Parameter_t(pid, in_length)
983  , endpointSet(0)
984  {
985  }
986 
987 };
988 
989 #define PARAMETER_BUILTINENDPOINTSET_LENGTH 4
990 
995 {
996 public:
997 
1000 
1005  : netconfigSet(0)
1006  {
1007  }
1008 
1016  ParameterId_t pid,
1017  uint16_t in_length)
1018  : Parameter_t(pid, in_length)
1019  , netconfigSet(0)
1020  {
1021  }
1022 
1023 };
1024 
1025 #define PARAMETER_NETWORKCONFIGSET_LENGTH 4
1026 
1031 {
1032 
1034 
1035 private:
1036 
1038  fastdds::rtps::octet* data;
1039 
1040 public:
1041 
1046  {
1047  data = nullptr;
1048  }
1049 
1056  void* ptr)
1057  {
1058  data = (fastdds::rtps::octet*)ptr;
1059  }
1060 
1066  std::string first() const
1067  {
1068  //Skip the size and return the string
1069  return std::string((char*)data + 4);
1070  }
1071 
1077  std::string second() const
1078  {
1079  //Skip the first element
1080  uint32_t size1 = ParameterProperty_t::element_size(data);
1081 
1082  //Skip the size of the second element and return the string
1083  return std::string((char*)data + size1 + 4);
1084  }
1085 
1092  bool modify(
1093  const std::pair<std::string, std::string>& new_value)
1094  {
1095  uint32_t old_size = size();
1096 
1097  uint32_t first_size = (uint32_t)new_value.first.size() + 1;
1098  uint32_t first_alignment = ((first_size + 3u) & ~3u) - first_size;
1099  uint32_t second_size = (uint32_t)new_value.second.size() + 1;
1100  uint32_t second_alignment = ((second_size + 3u) & ~3u) - second_size;
1101  uint32_t new_size = first_size + first_alignment + second_size + second_alignment + 8;
1102 
1103  if (old_size != new_size)
1104  {
1105  return false;
1106  }
1107 
1108  fastdds::rtps::octet* current = data;
1109  memcpy(current, &first_size, 4);
1110  memcpy(current + 4, new_value.first.c_str(), first_size);
1111  memset(current + 4 + first_size, 0, first_alignment);
1112 
1113  current = data + 4 + first_size + first_alignment;
1114  memcpy(current, &second_size, 4);
1115  memcpy(current + 4, new_value.second.c_str(), second_size);
1116  memset(current + 4 + second_size, 0, second_alignment);
1117 
1118  return true;
1119  }
1120 
1126  std::pair<const std::string, const std::string> pair() const
1127  {
1128  return std::make_pair(std::string(first()), std::string(second()));
1129  }
1130 
1136  uint32_t size() const
1137  {
1138  //Size of the first element (with alignment)
1139  uint32_t size1 = ParameterProperty_t::element_size(data);
1140 
1141  //Size of the second element (with alignment)
1142  uint32_t size2 = ParameterProperty_t::element_size(data + size1);
1143  return size1 + size2;
1144  }
1145 
1147  const ParameterProperty_t& b) const
1148  {
1149  return (first() == b.first()) &&
1150  (second() == b.second());
1151  }
1152 
1154  const ParameterProperty_t& b) const
1155  {
1156  return !(*this == b);
1157  }
1158 
1159 private:
1160 
1167  static uint32_t element_size(
1168  const fastdds::rtps::octet* ptr)
1169  {
1170  //Size of the element (with alignment)
1171  uint32_t size = *(uint32_t*)ptr;
1172  return (4u + ((size + 3u) & ~3u));
1173  }
1174 
1175 };
1176 
1182 const std::string parameter_property_persistence_guid = "PID_PERSISTENCE_GUID";
1183 
1189 const std::string parameter_property_participant_type = "PARTICIPANT_TYPE";
1190 
1196 const std::string parameter_property_ds_version = "DS_VERSION";
1197 
1203 const std::string parameter_property_current_ds_version = "2.0";
1204 
1210 const char* const parameter_policy_physical_data_host = "fastdds.physical_data.host";
1211 
1217 const char* const parameter_policy_physical_data_user = "fastdds.physical_data.user";
1218 
1224 const char* const parameter_policy_physical_data_process = "fastdds.physical_data.process";
1225 
1231 const char* const parameter_enable_monitor_service = "fastdds.enable_monitor_service";
1232 
1238 const char* const parameter_policy_type_propagation = "fastdds.type_propagation";
1239 
1245 const char* const parameter_serialize_optional_qos = "fastdds.serialize_optional_qos";
1246 
1251 {
1252 private:
1253 
1257  uint32_t Nproperties_ = 0;
1259  bool limit_size_ = false;
1260 
1261 public:
1262 
1263  class iterator
1264  {
1265  public:
1266 
1271  typedef size_t difference_type;
1272  typedef std::forward_iterator_tag iterator_category;
1273 
1280  fastdds::rtps::octet* ptr)
1281  : ptr_(ptr)
1282  , value_(ptr)
1283  {
1284  }
1285 
1287  {
1288  advance();
1289  return *this;
1290  }
1291 
1293  int)
1294  {
1295  self_type i = *this;
1296  advance();
1297  return i;
1298  }
1299 
1301  {
1302  return value_;
1303  }
1304 
1306  {
1307  return &value_;
1308  }
1309 
1311  const self_type& rhs) const
1312  {
1313  return ptr_ == rhs.ptr_;
1314  }
1315 
1317  const self_type& rhs) const
1318  {
1319  return ptr_ != rhs.ptr_;
1320  }
1321 
1322  protected:
1323 
1327  void advance()
1328  {
1329  ptr_ += value_.size();
1330  value_ = ParameterProperty_t(ptr_);
1331  }
1332 
1339  {
1340  return ptr_;
1341  }
1342 
1343  private:
1344 
1346  fastdds::rtps::octet* ptr_;
1348  ParameterProperty_t value_;
1349  };
1350 
1352  {
1353  public:
1354 
1359  typedef size_t difference_type;
1360  typedef std::forward_iterator_tag iterator_category;
1361 
1368  const fastdds::rtps::octet* ptr)
1369  : ptr_(ptr)
1370  , value_(const_cast<fastdds::rtps::octet*>(ptr))
1371  {
1372  }
1373 
1375  {
1376  advance();
1377  return *this;
1378  }
1379 
1381  int)
1382  {
1383  self_type i = *this;
1384  advance();
1385  return i;
1386  }
1387 
1389  {
1390  return value_;
1391  }
1392 
1394  {
1395  return &value_;
1396  }
1397 
1399  const self_type& rhs) const
1400  {
1401  return ptr_ == rhs.ptr_;
1402  }
1403 
1405  const self_type& rhs) const
1406  {
1407  return ptr_ != rhs.ptr_;
1408  }
1409 
1410  protected:
1411 
1415  void advance()
1416  {
1417  ptr_ += value_.size();
1418  value_ = ParameterProperty_t(const_cast<fastdds::rtps::octet*>(ptr_));
1419  }
1420 
1427  {
1428  return ptr_;
1429  }
1430 
1431  private:
1432 
1434  const fastdds::rtps::octet* ptr_;
1436  ParameterProperty_t value_;
1437  };
1438 
1439 public:
1440 
1447  , Nproperties_ (0)
1448  , limit_size_ (false)
1449  {
1450  }
1451 
1458  uint32_t size)
1460  , properties_(size)
1461  , Nproperties_ (0)
1462  , limit_size_ (size == 0 ? false : true)
1463  {
1464  }
1465 
1473  ParameterId_t pid,
1474  uint16_t in_length)
1475  : Parameter_t(PID_PROPERTY_LIST, in_length)
1476  , Nproperties_ (0)
1477  , limit_size_ (false)
1478  {
1479  static_cast<void>(pid);
1480  }
1481 
1488  const ParameterPropertyList_t& parameter_properties)
1489  : Parameter_t(PID_PROPERTY_LIST, parameter_properties.length)
1490  , properties_(parameter_properties.limit_size_ ?
1491  parameter_properties.properties_.max_size :
1492  parameter_properties.properties_.length)
1493  , Nproperties_ (parameter_properties.Nproperties_)
1494  , limit_size_ (parameter_properties.limit_size_)
1495  {
1496  properties_.copy(&parameter_properties.properties_, parameter_properties.limit_size_);
1497  }
1498 
1500  const ParameterPropertyList_t& parameter_properties)
1501  {
1502  length = parameter_properties.length;
1503  limit_size_ = parameter_properties.limit_size_;
1504  properties_.reserve(limit_size_ ?
1505  parameter_properties.properties_.max_size :
1506  parameter_properties.properties_.length);
1507  properties_.copy(&parameter_properties.properties_, parameter_properties.limit_size_);
1508  Nproperties_ = parameter_properties.Nproperties_;
1509  return *this;
1510  }
1511 
1518  {
1519  return iterator(properties_.data);
1520  }
1521 
1528  {
1529  return iterator(properties_.data + properties_.length);
1530  }
1531 
1538  {
1539  return const_iterator(properties_.data);
1540  }
1541 
1548  {
1549  return const_iterator(properties_.data + properties_.length);
1550  }
1551 
1559  std::pair<std::string, std::string> p)
1560  {
1561  return push_back(p.first, p.second);
1562  }
1563 
1572  const std::string& key,
1573  const std::string& value)
1574  {
1575  auto str1 = reinterpret_cast<const unsigned char*>(key.c_str());
1576  uint32_t size1 = (uint32_t) key.length() + 1;
1577  auto str2 = reinterpret_cast<const unsigned char*>(value.c_str());
1578  uint32_t size2 = (uint32_t) value.length() + 1;
1579 
1580  return push_back(str1, size1, str2, size2);
1581  }
1582 
1593  const unsigned char* str1,
1594  uint32_t str1_size,
1595  const unsigned char* str2,
1596  uint32_t str2_size)
1597  {
1598  //Realloc if needed;
1599  uint32_t alignment1 = ((str1_size + 3u) & ~3u) - str1_size;
1600  uint32_t alignment2 = ((str2_size + 3u) & ~3u) - str2_size;
1601 
1602  if (limit_size_ && (properties_.max_size < properties_.length +
1603  str1_size + alignment1 + 4 +
1604  str2_size + alignment2 + 4))
1605  {
1606  return false;
1607  }
1608  properties_.reserve(properties_.length +
1609  str1_size + alignment1 + 4 +
1610  str2_size + alignment2 + 4);
1611 
1612  push_back_helper((fastdds::rtps::octet*)str1, str1_size, alignment1);
1613  push_back_helper((fastdds::rtps::octet*)str2, str2_size, alignment2);
1614  ++Nproperties_;
1615  return true;
1616  }
1617 
1626  iterator pos,
1627  const std::pair<std::string, std::string>& new_value)
1628  {
1629  return pos->modify(new_value);
1630  }
1631 
1635  void clear()
1636  {
1637  properties_.length = 0;
1638  Nproperties_ = 0;
1639  }
1640 
1646  uint32_t size() const
1647  {
1648  return Nproperties_;
1649  }
1650 
1655  uint32_t size)
1656  {
1657  properties_.reserve(size);
1658  limit_size_ = true;
1659  }
1660 
1666  uint32_t max_size ()
1667  {
1668  return (limit_size_ ? properties_.max_size : 0);
1669  }
1670 
1671 protected:
1672 
1674  const fastdds::rtps::octet* data,
1675  uint32_t size,
1676  uint32_t alignment)
1677  {
1679  memcpy(properties_.data + properties_.length, o, 4);
1680  properties_.length += 4;
1681 
1682  memcpy(properties_.data + properties_.length, data, size);
1683  properties_.length += size;
1684 
1685  for (uint32_t i = 0; i < alignment; ++i)
1686  {
1687  properties_.data[properties_.length + i] = '\0';
1688  }
1689  properties_.length += alignment;
1690  }
1691 
1692 };
1693 
1694 
1699 {
1700 public:
1701 
1704 
1709  : sample_id(fastdds::rtps::SampleIdentity::unknown())
1710  {
1711  }
1712 
1720  ParameterId_t pid,
1721  uint16_t in_length)
1722  : Parameter_t(pid, in_length)
1723  , sample_id(fastdds::rtps::SampleIdentity::unknown())
1724  {
1725  }
1726 
1734  fastdds::rtps::CDRMessage_t* msg) const;
1735 
1745  uint16_t size);
1746 
1747 };
1748 
1749 #define PARAMETER_SAMPLEIDENTITY_LENGTH 24
1750 
1755 {
1756 public:
1757 
1760 
1765  : original_writer_info(fastdds::rtps::OriginalWriterInfo::unknown())
1766  {
1767  }
1768 
1776  ParameterId_t pid,
1777  uint16_t in_length)
1778  : Parameter_t(pid, in_length)
1779  , original_writer_info(fastdds::rtps::OriginalWriterInfo::unknown())
1780  {
1781  }
1782 
1790  fastdds::rtps::CDRMessage_t* msg) const;
1791 
1801  uint16_t size);
1802 
1803 };
1804 
1805 #define PARAMETER_ORIGINALWRITERINFO_LENGTH 24
1806 
1807 
1808 #if HAVE_SECURITY
1809 
1813 class ParameterToken_t : public Parameter_t
1814 {
1815 public:
1816 
1818  fastdds::rtps::Token token;
1819 
1823  ParameterToken_t()
1824  {
1825  }
1826 
1833  ParameterToken_t(
1834  ParameterId_t pid,
1835  uint16_t in_length)
1836  : Parameter_t(pid, in_length)
1837  {
1838  }
1839 
1840 };
1841 
1843 #define PARAMETER_PARTICIPANT_SECURITY_INFO_LENGTH 8
1844 
1848 class ParameterParticipantSecurityInfo_t : public Parameter_t
1849 {
1850 public:
1851 
1853  fastdds::rtps::security::ParticipantSecurityAttributesMask security_attributes = 0;
1855  fastdds::rtps::security::PluginParticipantSecurityAttributesMask plugin_security_attributes = 0;
1856 
1862  ParameterParticipantSecurityInfo_t()
1863  : Parameter_t(PID_PARTICIPANT_SECURITY_INFO, PARAMETER_PARTICIPANT_SECURITY_INFO_LENGTH)
1864  {
1865  }
1866 
1873  ParameterParticipantSecurityInfo_t(
1874  ParameterId_t pid,
1875  uint16_t in_length)
1876  : Parameter_t(pid, in_length)
1877  {
1878  }
1879 
1880 };
1881 
1883 #define PARAMETER_ENDPOINT_SECURITY_INFO_LENGTH 8
1884 
1888 class ParameterEndpointSecurityInfo_t : public Parameter_t
1889 {
1890 public:
1891 
1894 
1900  ParameterEndpointSecurityInfo_t()
1901  : Parameter_t(PID_ENDPOINT_SECURITY_INFO, PARAMETER_ENDPOINT_SECURITY_INFO_LENGTH)
1902  {
1903  }
1904 
1911  ParameterEndpointSecurityInfo_t(
1912  ParameterId_t pid,
1913  uint16_t in_length)
1914  : Parameter_t(pid, in_length)
1915  {
1916  }
1917 
1918 };
1919 
1920 #endif // if HAVE_SECURITY
1921 
1923 
1924 template<class T, class PL>
1926  const T& p,
1927  const char* PID,
1928  PL& properties)
1929 {
1930  // only valid values
1931  if (p == T::unknown())
1932  {
1933  return;
1934  }
1935 
1936  // generate pair
1937  std::pair<std::string, std::string> pair;
1938  pair.first = PID;
1939 
1940  std::ostringstream data;
1941  data << p;
1942  pair.second = data.str();
1943 
1944  // if exists replace
1945  auto it = std::find_if(
1946  properties.begin(),
1947  properties.end(),
1948  [&pair](const typename PL::const_iterator::reference p)
1949  {
1950  return pair.first == p.first();
1951  });
1952 
1953  if (it != properties.end())
1954  {
1955  // it->modify(pair);
1956  properties.set_property(it, pair);
1957  }
1958  else
1959  {
1960  // if not exists add
1961  properties.push_back(pair.first, pair.second);
1962  }
1963 }
1964 
1965 template<class T, class PL>
1967  const char* const PID,
1968  PL& properties)
1969 {
1970  T property;
1971 
1972  auto it = std::find_if(
1973  properties.begin(),
1974  properties.end(),
1975  [PID](const typename PL::const_iterator::reference p)
1976  {
1977  return PID == p.first();
1978  });
1979 
1980  if (it != properties.end())
1981  {
1982  std::istringstream in(it->second());
1983  in >> property;
1984  }
1985 
1986  return property;
1987 }
1988 
1989 } //namespace dds
1990 
1991 namespace rtps {
1992 
2014 #if HAVE_SECURITY
2015 using ParameterToken_t = fastdds::dds::ParameterToken_t;
2016 using ParameterParticipantSecurityInfo_t = fastdds::dds::ParameterParticipantSecurityInfo_t;
2017 using ParameterEndpointSecurityInfo_t = fastdds::dds::ParameterEndpointSecurityInfo_t;
2018 #endif // if HAVE_SECURITY
2019 
2020 } //namespace rtps
2021 } //namespace fastdds
2022 } //namespace eprosima
2023 
2024 #endif // ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
2025 #endif // FASTDDS_DDS_CORE_POLICY__PARAMETERTYPES_HPP
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
FASTDDS_EXPORTED_API Parameter_t(ParameterId_t pid, uint16_t length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:220
virtual FASTDDS_EXPORTED_API ~Parameter_t()
Destructor.
Definition: ParameterTypes.hpp:231
bool operator==(const Parameter_t &b) const
Definition: ParameterTypes.hpp:235
Definition: ParameterTypes.hpp:749
bool value
Boolean By default, false.
Definition: ParameterTypes.hpp:753
ParameterBool_t()
Constructor without parameter.
Definition: ParameterTypes.hpp:758
ParameterBool_t(ParameterId_t pid, uint16_t in_length, bool inbool)
Constructor using a parameter PID, the parameter length and a boolean.
Definition: ParameterTypes.hpp:784
ParameterBool_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:769
ParameterBuiltinEndpointSet_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:968
ParameterBuiltinEndpointSet_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:979
fastdds::rtps::BuiltinEndpointSet_t endpointSet
Builtin Endpoint Set By default, 0.
Definition: ParameterTypes.hpp:963
Definition: ParameterTypes.hpp:853
ParameterCount_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:873
fastdds::rtps::Count_t count
Count By default, 0.
Definition: ParameterTypes.hpp:857
ParameterCount_t()
Constructor without parameter.
Definition: ParameterTypes.hpp:862
Definition: ParameterTypes.hpp:551
uint32_t domain_id
Domain ID. By default, DOMAIN_ID_UNKNOWN.
Definition: ParameterTypes.hpp:555
ParameterDomainId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:571
ParameterDomainId_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:560
Definition: ParameterTypes.hpp:889
ParameterEntityId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:909
ParameterEntityId_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:898
fastdds::rtps::EntityId_t entityId
EntityId By default, ENTITYID_UNKNOWN.
Definition: ParameterTypes.hpp:893
Definition: ParameterTypes.hpp:485
ParameterGuid_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:504
ParameterGuid_t(ParameterId_t pid, uint16_t in_length, const fastdds::rtps::InstanceHandle_t &iH)
Constructor using a parameter PID, the parameter length and a Instance Handle.
Definition: ParameterTypes.hpp:534
fastdds::rtps::GUID_t guid
GUID By default, unknown GUID.
Definition: ParameterTypes.hpp:489
ParameterGuid_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:494
ParameterGuid_t(ParameterId_t pid, uint16_t in_length, const fastdds::rtps::GUID_t &guidin)
Constructor using a parameter PID, the parameter length and a GUID.
Definition: ParameterTypes.hpp:518
Definition: ParameterTypes.hpp:693
ParameterIP4Address_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:702
ParameterIP4Address_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:713
fastdds::rtps::octet address[4]
Address By default [0,0,0,0].
Definition: ParameterTypes.hpp:697
void setIP4Address(fastdds::rtps::octet o1, fastdds::rtps::octet o2, fastdds::rtps::octet o3, fastdds::rtps::octet o4)
Setter for the address.
Definition: ParameterTypes.hpp:729
Definition: ParameterTypes.hpp:254
ParameterKey_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:262
ParameterKey_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:272
ParameterKey_t(ParameterId_t pid, uint16_t in_length, const fastdds::rtps::InstanceHandle_t &ke)
Constructor using a parameter PID, parameter length and Instance Handle.
Definition: ParameterTypes.hpp:286
fastdds::rtps::InstanceHandle_t key
Instance Handle. By default, c_InstanceHandle_Unknown.
Definition: ParameterTypes.hpp:258
Definition: ParameterTypes.hpp:303
ParameterLocator_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:322
rtps::Locator locator
Locator.
Definition: ParameterTypes.hpp:307
ParameterLocator_t(ParameterId_t pid, uint16_t in_length, const rtps::Locator &loc)
Constructor using a parameter PID, the parameter length and a Locator.
Definition: ParameterTypes.hpp:336
ParameterLocator_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:312
Definition: ParameterTypes.hpp:995
fastdds::rtps::NetworkConfigSet_t netconfigSet
Network Config Set By default, 0.
Definition: ParameterTypes.hpp:999
ParameterNetworkConfigSet_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:1015
ParameterNetworkConfigSet_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:1004
ParameterOriginalWriterInfo_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:1775
fastdds::rtps::OriginalWriterInfo original_writer_info
Original Writer Info By default, unknown.
Definition: ParameterTypes.hpp:1759
bool addToCDRMessage(fastdds::rtps::CDRMessage_t *msg) const
Add the parameter to a CDRMessage_t message.
bool readFromCDRMessage(fastdds::rtps::CDRMessage_t *msg, uint16_t size)
Read the parameter from a CDRMessage_t message.
ParameterOriginalWriterInfo_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:1764
Definition: ParameterTypes.hpp:433
uint32_t port
Port. By default, 0.
Definition: ParameterTypes.hpp:437
ParameterPort_t(ParameterId_t pid, uint16_t in_length, uint32_t po)
Constructor using a parameter PID, the parameter length and a port.
Definition: ParameterTypes.hpp:468
ParameterPort_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:453
ParameterPort_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:442
Definition: ParameterTypes.hpp:660
ParameterProductVersion_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:668
rtps::ProductVersion_t version
Definition: ParameterTypes.hpp:663
ParameterProductVersion_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:678
Definition: ParameterTypes.hpp:1031
std::string second() const
Getter for the second element in data.
Definition: ParameterTypes.hpp:1077
ParameterProperty_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:1045
uint32_t size() const
Getter for data size.
Definition: ParameterTypes.hpp:1136
bool modify(const std::pair< std::string, std::string > &new_value)
Setter using a pair of strings.
Definition: ParameterTypes.hpp:1092
bool operator==(const ParameterProperty_t &b) const
Definition: ParameterTypes.hpp:1146
std::pair< const std::string, const std::string > pair() const
Getter that returns a pair of the first and second elements in data.
Definition: ParameterTypes.hpp:1126
ParameterProperty_t(void *ptr)
Constructor using a pointer.
Definition: ParameterTypes.hpp:1055
std::string first() const
Getter for the first element in data.
Definition: ParameterTypes.hpp:1066
bool operator!=(const ParameterProperty_t &b) const
Definition: ParameterTypes.hpp:1153
pointer operator->()
Definition: ParameterTypes.hpp:1393
size_t difference_type
Definition: ParameterTypes.hpp:1359
self_type operator++()
Definition: ParameterTypes.hpp:1374
bool operator==(const self_type &rhs) const
Definition: ParameterTypes.hpp:1398
std::forward_iterator_tag iterator_category
Definition: ParameterTypes.hpp:1360
bool operator!=(const self_type &rhs) const
Definition: ParameterTypes.hpp:1404
reference operator*()
Definition: ParameterTypes.hpp:1388
const_iterator self_type
Definition: ParameterTypes.hpp:1355
const_iterator(const fastdds::rtps::octet *ptr)
Constructor using a pointer.
Definition: ParameterTypes.hpp:1367
void advance()
Shift the pointer to the next value.
Definition: ParameterTypes.hpp:1415
const ParameterProperty_t * pointer
Definition: ParameterTypes.hpp:1358
const ParameterProperty_t value_type
Definition: ParameterTypes.hpp:1356
const fastdds::rtps::octet * address() const
Getter for the pointer.
Definition: ParameterTypes.hpp:1426
const ParameterProperty_t & reference
Definition: ParameterTypes.hpp:1357
ParameterProperty_t value_type
Definition: ParameterTypes.hpp:1268
pointer operator->()
Definition: ParameterTypes.hpp:1305
size_t difference_type
Definition: ParameterTypes.hpp:1271
self_type operator++()
Definition: ParameterTypes.hpp:1286
bool operator==(const self_type &rhs) const
Definition: ParameterTypes.hpp:1310
std::forward_iterator_tag iterator_category
Definition: ParameterTypes.hpp:1272
ParameterProperty_t * pointer
Definition: ParameterTypes.hpp:1270
bool operator!=(const self_type &rhs) const
Definition: ParameterTypes.hpp:1316
reference operator*()
Definition: ParameterTypes.hpp:1300
void advance()
Shift the pointer to the next value.
Definition: ParameterTypes.hpp:1327
ParameterProperty_t & reference
Definition: ParameterTypes.hpp:1269
iterator(fastdds::rtps::octet *ptr)
Constructor using an octet pointer.
Definition: ParameterTypes.hpp:1279
fastdds::rtps::octet * address() const
Getter for the pointer.
Definition: ParameterTypes.hpp:1338
iterator self_type
Definition: ParameterTypes.hpp:1267
Definition: ParameterTypes.hpp:1251
ParameterPropertyList_t(const ParameterPropertyList_t &parameter_properties)
Constructor using a Parameter Property List.
Definition: ParameterTypes.hpp:1487
const_iterator begin() const
Getter for the first position of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1537
bool push_back(std::pair< std::string, std::string > p)
Introduce a new property in the ParameterPropertyList.
Definition: ParameterTypes.hpp:1558
void push_back_helper(const fastdds::rtps::octet *data, uint32_t size, uint32_t alignment)
Definition: ParameterTypes.hpp:1673
uint32_t max_size()
Getter for the maximum size of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1666
ParameterPropertyList_t(uint32_t size)
Constructor with a defined maximum size.
Definition: ParameterTypes.hpp:1457
bool set_property(iterator pos, const std::pair< std::string, std::string > &new_value)
Setter of a new property value on a specific position.
Definition: ParameterTypes.hpp:1625
uint32_t size() const
Getter for the size of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1646
bool push_back(const unsigned char *str1, uint32_t str1_size, const unsigned char *str2, uint32_t str2_size)
Introduce a new property in the ParameterPropertyList.
Definition: ParameterTypes.hpp:1592
ParameterPropertyList_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:1472
void set_max_size(uint32_t size)
Setter for the maximum size of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1654
ParameterPropertyList_t & operator=(const ParameterPropertyList_t &parameter_properties)
Definition: ParameterTypes.hpp:1499
bool push_back(const std::string &key, const std::string &value)
Introduce a new property in the ParameterPropertyList.
Definition: ParameterTypes.hpp:1571
void clear()
Clears the ParameterPropertyList.
Definition: ParameterTypes.hpp:1635
iterator end()
Getter for the end of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1527
const_iterator end() const
Getter for the end of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1547
iterator begin()
Getter for the first position of the ParameterPropertyList.
Definition: ParameterTypes.hpp:1517
ParameterPropertyList_t()
Constructor without parameters Sets PID_PROPERTY_LIST as the PID of the parameter.
Definition: ParameterTypes.hpp:1445
Definition: ParameterTypes.hpp:588
ParameterProtocolVersion_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:608
fastdds::rtps::ProtocolVersion_t protocolVersion
Protocol Version. By default, c_ProtocolVersion.
Definition: ParameterTypes.hpp:592
ParameterProtocolVersion_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:597
Definition: ParameterTypes.hpp:1699
ParameterSampleIdentity_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:1708
bool addToCDRMessage(fastdds::rtps::CDRMessage_t *msg) const
Add the parameter to a CDRMessage_t message.
bool readFromCDRMessage(fastdds::rtps::CDRMessage_t *msg, uint16_t size)
Read the parameter from a CDRMessage_t message.
ParameterSampleIdentity_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:1719
fastdds::rtps::SampleIdentity sample_id
Sample Identity By default, unknown.
Definition: ParameterTypes.hpp:1703
Definition: ParameterTypes.hpp:801
ParameterStatusInfo_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:821
ParameterStatusInfo_t(ParameterId_t pid, uint16_t in_length, uint8_t instatus)
Constructor using a parameter PID, the parameter length and status value.
Definition: ParameterTypes.hpp:836
ParameterStatusInfo_t()
Constructor without parameter.
Definition: ParameterTypes.hpp:810
uint8_t status
Status By default, 0.
Definition: ParameterTypes.hpp:805
Definition: ParameterTypes.hpp:353
size_t size() const
Getter for the name size.
Definition: ParameterTypes.hpp:418
ParameterString_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:369
ParameterString_t(ParameterId_t pid, uint16_t in_length, const fastcdr::string_255 &strin)
Constructor using a parameter PID, the parameter length and a string.
Definition: ParameterTypes.hpp:383
void setName(const char *name)
Setter for the name.
Definition: ParameterTypes.hpp:407
const char * getName() const
Getter for the name.
Definition: ParameterTypes.hpp:397
ParameterString_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:359
Definition: ParameterTypes.hpp:925
fastdds::rtps::Time_t time
Time By default, 0.
Definition: ParameterTypes.hpp:929
ParameterTime_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:934
ParameterTime_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:944
Definition: ParameterTypes.hpp:624
ParameterVendorId_t()
Constructor without parameters.
Definition: ParameterTypes.hpp:633
fastdds::rtps::VendorId_t vendorId
Vendor Id. By default, c_VendorId_eProsima.
Definition: ParameterTypes.hpp:628
ParameterVendorId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition: ParameterTypes.hpp:644
Class Locator_t, uniquely identifies a communication channel for a particular transport.
Definition: Locator.hpp:74
Definition: OriginalWriterInfo.hpp:31
This class is used to specify a sample.
Definition: SampleIdentity.hpp:34
Structure Time_t, used to describe times at RTPS protocol.
Definition: Time_t.hpp:38
const std::string parameter_property_participant_type
Parameter property ID for participant type.
Definition: ParameterTypes.hpp:1189
const char *const parameter_enable_monitor_service
Parameter property value for enabling the monitor service.
Definition: ParameterTypes.hpp:1231
const char *const parameter_policy_type_propagation
Parameter property value for configuring type propagation.
Definition: ParameterTypes.hpp:1238
ParameterId_t
Enum for the unique parameter identifier.
Definition: ParameterTypes.hpp:70
const std::string parameter_property_persistence_guid
Parameter property ID for persistence GUID.
Definition: ParameterTypes.hpp:1182
const std::string parameter_property_ds_version
Parameter property ID for Discovery Server version.
Definition: ParameterTypes.hpp:1196
const char *const parameter_policy_physical_data_host
Parameter property value for Host physical data.
Definition: ParameterTypes.hpp:1210
const std::string parameter_property_current_ds_version
Parameter property value for Discovery Server version.
Definition: ParameterTypes.hpp:1203
const char *const parameter_policy_physical_data_process
Parameter property value for Process physical data.
Definition: ParameterTypes.hpp:1224
const char *const parameter_serialize_optional_qos
Parameter property value for configuring serialization of optional QoS in Data(r/w)
Definition: ParameterTypes.hpp:1245
const char *const parameter_policy_physical_data_user
Parameter property value for User physical data.
Definition: ParameterTypes.hpp:1217
@ PID_TOPIC_NAME
Definition: ParameterTypes.hpp:75
@ PID_SENTINEL
Definition: ParameterTypes.hpp:73
@ PID_TOPIC_DATA
Definition: ParameterTypes.hpp:78
@ PID_GROUP_SEQ_NUM
Definition: ParameterTypes.hpp:125
@ PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT
Definition: ParameterTypes.hpp:106
@ PID_DURABILITY_SERVICE
Definition: ParameterTypes.hpp:80
@ PID_UNICAST_LOCATOR
Definition: ParameterTypes.hpp:99
@ PID_LIVELINESS
Definition: ParameterTypes.hpp:83
@ PID_OWNERSHIP
Definition: ParameterTypes.hpp:89
@ PID_EXPECTS_INLINE_QOS
Definition: ParameterTypes.hpp:105
@ PID_COHERENT_SET
Definition: ParameterTypes.hpp:121
@ PID_LATENCY_BUDGET
Definition: ParameterTypes.hpp:82
@ PID_RESOURCE_LIMITS
Definition: ParameterTypes.hpp:88
@ PID_GROUP_GUID
Definition: ParameterTypes.hpp:110
@ PID_TYPE_MAX_SIZE_SERIALIZED
Definition: ParameterTypes.hpp:115
@ PID_SERVICE_INSTANCE_NAME
Definition: ParameterTypes.hpp:164
@ PID_DATASHARING
Definition: ParameterTypes.hpp:174
@ PID_PROTOCOL_VERSION
Definition: ParameterTypes.hpp:97
@ PID_RPC_MORE_REPLIES
Definition: ParameterTypes.hpp:190
@ PID_READER_DATA_LIFECYCLE
Definition: ParameterTypes.hpp:184
@ PID_BUILTIN_ENDPOINT_SET
Definition: ParameterTypes.hpp:112
@ PID_PAD
Definition: ParameterTypes.hpp:72
@ PID_WRITER_GROUP_INFO
Definition: ParameterTypes.hpp:126
@ PID_READER_RESOURCE_LIMITS
Definition: ParameterTypes.hpp:186
@ PID_PUBLISH_MODE
Definition: ParameterTypes.hpp:180
@ PID_RELIABILITY
Definition: ParameterTypes.hpp:84
@ PID_VENDORID
Definition: ParameterTypes.hpp:98
@ PID_PARTICIPANT_SECURITY_INFO
Definition: ParameterTypes.hpp:152
@ PID_CONTENT_FILTER_INFO
Definition: ParameterTypes.hpp:120
@ PID_TOPIC_ALIASES
Definition: ParameterTypes.hpp:166
@ PID_DURABILITY
Definition: ParameterTypes.hpp:79
@ PID_METATRAFFIC_MULTICAST_LOCATOR
Definition: ParameterTypes.hpp:104
@ PID_PROPERTY_LIST
Definition: ParameterTypes.hpp:114
@ PID_USER_DATA
Definition: ParameterTypes.hpp:74
@ PID_DIRECTED_WRITE
Definition: ParameterTypes.hpp:122
@ PID_ORIGINAL_WRITER_INFO
Definition: ParameterTypes.hpp:123
@ PID_BUILTIN_ENDPOINT_QOS
Definition: ParameterTypes.hpp:113
@ PID_DEFAULT_MULTICAST_LOCATOR
Definition: ParameterTypes.hpp:102
@ PID_DEADLINE
Definition: ParameterTypes.hpp:81
@ PID_RELATED_ENTITY_GUID
Definition: ParameterTypes.hpp:165
@ PID_WRITER_DATA_LIFECYCLE
Definition: ParameterTypes.hpp:179
@ PID_TYPE_IDV1
Definition: ParameterTypes.hpp:143
@ PID_IDENTITY_TOKEN
Definition: ParameterTypes.hpp:150
@ PID_PARTICIPANT_GUID
Definition: ParameterTypes.hpp:109
@ PID_TYPE_INFORMATION
Definition: ParameterTypes.hpp:147
@ PID_SAFE_DDS_SIGNATURE
Definition: ParameterTypes.hpp:193
@ PID_IDENTITY_STATUS_TOKEN
Definition: ParameterTypes.hpp:158
@ PID_DESTINATION_ORDER
Definition: ParameterTypes.hpp:86
@ PID_MULTICAST_LOCATOR
Definition: ParameterTypes.hpp:100
@ PID_GROUP_ENTITYID
Definition: ParameterTypes.hpp:111
@ PID_KEY_HASH
Definition: ParameterTypes.hpp:128
@ PID_PRESENTATION
Definition: ParameterTypes.hpp:91
@ PID_RELATED_SAMPLE_IDENTITY
Definition: ParameterTypes.hpp:167
@ PID_NETWORK_CONFIGURATION_SET
Definition: ParameterTypes.hpp:175
@ PID_LIFESPAN
Definition: ParameterTypes.hpp:85
@ PID_DISABLE_POSITIVE_ACKS
Definition: ParameterTypes.hpp:173
@ PID_TYPE_CONSISTENCY_ENFORCEMENT
Definition: ParameterTypes.hpp:146
@ PID_RTPS_RELIABLE_WRITER
Definition: ParameterTypes.hpp:181
@ PID_CUSTOM_RELATED_SAMPLE_IDENTITY
Definition: ParameterTypes.hpp:176
@ PID_OWNERSHIP_STRENGTH
Definition: ParameterTypes.hpp:90
@ PID_WRITER_RESOURCE_LIMITS
Definition: ParameterTypes.hpp:182
@ PID_ENDPOINT_GUID
Definition: ParameterTypes.hpp:117
@ PID_PARTITION
Definition: ParameterTypes.hpp:92
@ PID_DATA_TAGS
Definition: ParameterTypes.hpp:161
@ PID_ENTITY_NAME
Definition: ParameterTypes.hpp:116
@ PID_DEFAULT_UNICAST_LOCATOR
Definition: ParameterTypes.hpp:101
@ PID_TRANSPORT_PRIORITY
Definition: ParameterTypes.hpp:94
@ PID_METATRAFFIC_UNICAST_LOCATOR
Definition: ParameterTypes.hpp:103
@ PID_PARTICIPANT_LEASE_DURATION
Definition: ParameterTypes.hpp:107
@ PID_CONTENT_FILTER_PROPERTY
Definition: ParameterTypes.hpp:108
@ PID_STATUS_INFO
Definition: ParameterTypes.hpp:129
@ PID_TIME_BASED_FILTER
Definition: ParameterTypes.hpp:93
@ PID_GROUP_COHERENT_SET
Definition: ParameterTypes.hpp:124
@ PID_GROUP_DATA
Definition: ParameterTypes.hpp:77
@ PID_WIREPROTOCOL_CONFIG
Definition: ParameterTypes.hpp:188
@ PID_PRODUCT_VERSION
Definition: ParameterTypes.hpp:170
@ PID_ENDPOINT_SECURITY_INFO
Definition: ParameterTypes.hpp:155
@ PID_RTPS_RELIABLE_READER
Definition: ParameterTypes.hpp:185
@ PID_RTPS_ENDPOINT
Definition: ParameterTypes.hpp:177
@ PID_SECURE_WRITER_GROUP_INFO
Definition: ParameterTypes.hpp:127
@ PID_HISTORY
Definition: ParameterTypes.hpp:87
@ PID_TYPE_OBJECTV1
Definition: ParameterTypes.hpp:144
@ PID_DOMAIN_ID
Definition: ParameterTypes.hpp:95
@ PID_PERSISTENCE_GUID
Definition: ParameterTypes.hpp:171
@ PID_DOMAIN_TAG
Definition: ParameterTypes.hpp:96
@ PID_MACHINE_ID
Definition: ParameterTypes.hpp:172
@ PID_PERMISSIONS_TOKEN
Definition: ParameterTypes.hpp:151
@ PID_DATA_REPRESENTATION
Definition: ParameterTypes.hpp:145
@ PID_TYPE_NAME
Definition: ParameterTypes.hpp:76
Definition: DomainParticipant.hpp:46
void set_proxy_property(const T &p, const char *PID, PL &properties)
Definition: ParameterTypes.hpp:1925
const DomainId_t DOMAIN_ID_UNKNOWN
Definition: Types.hpp:26
T get_proxy_property(const char *const PID, PL &properties)
Definition: ParameterTypes.hpp:1966
uint32_t PluginEndpointSecurityAttributesMask
Definition: EndpointSecurityAttributes.hpp:28
uint32_t EndpointSecurityAttributesMask
Definition: EndpointSecurityAttributes.hpp:63
uint32_t BuiltinEndpointSet_t
Definition: Types.hpp:85
void iHandle2GUID(GUID_t &guid, const InstanceHandle_t &ihandle) noexcept
Convert InstanceHandle_t to GUID.
Definition: InstanceHandle.hpp:249
std::array< uint8_t, 2 > VendorId_t
Structure VendorId_t, specifying the vendor Id of the implementation.
Definition: VendorId_t.hpp:32
uint32_t Count_t
Definition: Types.hpp:87
const ProtocolVersion_t c_ProtocolVersion
Definition: Types.hpp:161
uint8_t octet
Definition: Types.hpp:83
fastdds::dds::Parameter_t Parameter_t
Definition: ParameterTypes.hpp:1994
uint32_t NetworkConfigSet_t
Definition: Types.hpp:86
DataHolder Token
Definition: Token.hpp:130
Structure CDRMessage_t, contains a serialized message.
Definition: CDRMessage_t.hpp:51
Structure EntityId_t, entity id part of GUID_t.
Definition: EntityId_t.hpp:77
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition: Guid.hpp:40
Struct InstanceHandle_t, used to contain the key for WITH_KEY topics.
Definition: InstanceHandle.hpp:154
Definition: ProductVersion_t.hpp:31
Structure ProtocolVersion_t, contains the protocol version.
Definition: Types.hpp:102
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