Fast DDS  Version 3.1.2
Fast DDS
Loading...
Searching...
No Matches
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/ProductVersion_t.hpp>
34#include <fastdds/rtps/common/SampleIdentity.hpp>
35#include <fastdds/rtps/common/SerializedPayload.hpp>
36#include <fastdds/rtps/common/Time_t.hpp>
37#include <fastdds/rtps/common/Token.hpp>
38
39#if HAVE_SECURITY
40#include <fastdds/rtps/attributes/EndpointSecurityAttributes.hpp>
41#endif // if HAVE_SECURITY
42
43namespace eprosima {
44namespace fastdds {
45namespace rtps {
46struct CDRMessage_t;
47#if HAVE_SECURITY
48namespace security {
49struct ParticipantSecurityAttributes;
51typedef uint32_t EndpointSecurityAttributesMask;
52typedef uint32_t PluginParticipantSecurityAttributesMask;
53typedef uint32_t ParticipantSecurityAttributesMask;
54} // namespace security
55#endif // HAVE_SECURITY
56} // namespace rtps
57
58namespace dds {
59
68enum ParameterId_t : uint16_t
69{
70 /* From Table 9.18 of DDS-RTPS 2.5 */
71 PID_PAD = 0x0000,
72 PID_SENTINEL = 0x0001,
73 PID_USER_DATA = 0x002c,
75 PID_TYPE_NAME = 0x0007,
80 PID_DEADLINE = 0x0023,
84 PID_LIFESPAN = 0x002b,
86 PID_HISTORY = 0x0040,
88 PID_OWNERSHIP = 0x001f,
91 PID_PARTITION = 0x0029,
94 PID_DOMAIN_ID = 0x000f,
97 PID_VENDORID = 0x0016,
117
118 /* From table 9.20 of DDS-RTPS 2.5 - inline QoS only */
127 PID_KEY_HASH = 0x0070,
129
130 /* Deprecated */
131 // PID_MULTICAST_IPADDRESS = 0x0011,
132 // PID_DEFAULT_UNICAST_IPADDRESS = 0x000c,
133 // PID_DEFAULT_UNICAST_PORT = 0x000e,
134 // PID_METATRAFFIC_UNICAST_IPADDRESS = 0x0045,
135 // PID_METATRAFFIC_UNICAST_PORT = 0x000d,
136 // PID_METATRAFFIC_MULTICAST_IPADDRESS = 0x000b,
137 // PID_METATRAFFIC_MULTICAST_PORT = 0x0046,
138 // PID_PARTICIPANT_BUILTIN_ENDPOINTS = 0x0044,
139 // PID_PARTICIPANT_ENTITYID = 0x0051,
140
141 /* From DDS-XTYPES 1.3 */
147
148 /* From table 10 of DDS-SEC 1.1 */
152
153 /* From table 12 of DDS-SEC 1.1 */
155
156 /* From table 13 of DDS-SEC 1.1 */
158
159 /* From table 14 of DDS-SEC 1.1 */
161
162 /* From Remote Procedure Call over DDS, document "ptc/2016-03-19" V1.0 */
167
168 /* eProsima Fast DDS extensions */
175};
176
183{
184public:
185
189 FASTDDS_EXPORTED_API Parameter_t()
190 : Pid(PID_PAD)
191 , length(0)
192 {
193 }
194
201 FASTDDS_EXPORTED_API Parameter_t(
202 ParameterId_t pid,
203 uint16_t length)
204 : Pid(pid)
205 , length(length)
206 {
207 }
208
212 virtual FASTDDS_EXPORTED_API ~Parameter_t()
213 {
214 }
215
217 const Parameter_t& b) const
218 {
219 return (this->Pid == b.Pid) &&
220 (this->length == b.length);
221 }
222
223public:
224
228 uint16_t length;
229};
230
235{
236public:
237
244 {
245 }
246
254 ParameterId_t pid,
255 uint16_t in_length)
256 : Parameter_t(pid, in_length)
257 {
258 }
259
268 ParameterId_t pid,
269 uint16_t in_length,
271 : Parameter_t(pid, in_length)
272 , key(ke)
273 {
274 }
275
276};
277
278#define PARAMETER_KEY_HASH_LENGTH 16
279
284{
285public:
286
289
294 {
295 }
296
304 ParameterId_t pid,
305 uint16_t in_length)
306 : Parameter_t(pid, in_length)
307 {
308 }
309
318 ParameterId_t pid,
319 uint16_t in_length,
320 const rtps::Locator& loc)
321 : Parameter_t(pid, in_length)
322 , locator(loc)
323 {
324 }
325
326};
327#define PARAMETER_LOCATOR_LENGTH 24
328
329
334{
335public:
336
341 {
342 }
343
351 ParameterId_t pid,
352 uint16_t in_length)
353 : Parameter_t(pid, in_length)
354 {
355 }
356
365 ParameterId_t pid,
366 uint16_t in_length,
367 const fastcdr::string_255& strin)
368 : Parameter_t(pid, in_length)
369 , string_(strin)
370 {
371 }
372
378 inline const char* getName() const
379 {
380 return string_.c_str();
381 }
382
388 inline void setName(
389 const char* name)
390 {
391 string_ = name;
392 }
393
399 inline size_t size() const
400 {
401 return string_.size();
402 }
403
404private:
405
407 fastcdr::string_255 string_;
408};
409
414{
415public:
416
418 uint32_t port;
419
424 : port(0)
425 {
426 }
427
435 ParameterId_t pid,
436 uint16_t in_length)
437 : Parameter_t(pid, in_length)
438 , port(0)
439 {
440 }
441
450 ParameterId_t pid,
451 uint16_t in_length,
452 uint32_t po)
453 : Parameter_t(pid, in_length)
454 , port(po)
455 {
456 }
457
458};
459
460#define PARAMETER_PORT_LENGTH 4
461
466{
467public:
468
471
476 {
477 }
478
486 ParameterId_t pid,
487 uint16_t in_length)
488 : Parameter_t(pid, in_length)
489 {
490 }
491
500 ParameterId_t pid,
501 uint16_t in_length,
502 const fastdds::rtps::GUID_t& guidin)
503 : Parameter_t(pid, in_length)
504 , guid(guidin)
505 {
506 }
507
516 ParameterId_t pid,
517 uint16_t in_length,
519 : Parameter_t(pid, in_length)
520 {
522 }
523
524};
525
526#define PARAMETER_GUID_LENGTH 16
527
532{
533public:
534
536 uint32_t domain_id;
537
545
553 ParameterId_t pid,
554 uint16_t in_length)
555 : Parameter_t(pid, in_length)
557 {
559 }
560
561};
562
563#define PARAMETER_DOMAINID_LENGTH 4
564
598
599#define PARAMETER_PROTOCOL_LENGTH 4
600
605{
606public:
607
610
615 : vendorId(fastdds::rtps::c_VendorId_eProsima)
616 {
617 }
618
626 ParameterId_t pid,
627 uint16_t in_length)
628 : Parameter_t(pid, in_length)
629 , vendorId(fastdds::rtps::c_VendorId_eProsima)
630 {
631 }
632
633};
634
635#define PARAMETER_VENDOR_LENGTH 4
636
641{
642public:
643
645
652
660 ParameterId_t pid,
661 uint16_t in_length)
662 : Parameter_t(pid, in_length)
663 {
664 }
665
666};
667
668#define PARAMETER_PRODUCT_VERSION_LENGTH 4
669
674{
675public:
676
679
684 {
685 this->setIP4Address(0, 0, 0, 0);
686 }
687
695 ParameterId_t pid,
696 uint16_t in_length)
697 : Parameter_t(pid, in_length)
698 {
699 this->setIP4Address(0, 0, 0, 0);
700 }
701
715 {
716 address[0] = o1;
717 address[1] = o2;
718 address[2] = o3;
719 address[3] = o4;
720 }
721
722};
723
724#define PARAMETER_IP4_LENGTH 4
725
730{
731public:
732
734 bool value;
735
740 : value(false)
741 {
742 }
743
751 ParameterId_t pid,
752 uint16_t in_length)
753 : Parameter_t(pid, in_length)
754 , value(false)
755 {
756 }
757
766 ParameterId_t pid,
767 uint16_t in_length,
768 bool inbool)
769 : Parameter_t(pid, in_length)
770 , value(inbool)
771 {
772 }
773
774};
775
776#define PARAMETER_BOOL_LENGTH 4
777
782{
783public:
784
786 uint8_t status;
787
792 : status(0)
793 {
794 }
795
803 ParameterId_t pid,
804 uint16_t in_length)
805 : Parameter_t(pid, in_length)
806 , status(0)
807 {
808 }
809
818 ParameterId_t pid,
819 uint16_t in_length,
820 uint8_t instatus)
821 : Parameter_t(pid, in_length)
822 , status(instatus)
823 {
824 }
825
826};
827
828#define PARAMETER_STATUS_INFO_LENGTH 4
829
834{
835public:
836
839
844 : count(0)
845 {
846 }
847
855 ParameterId_t pid,
856 uint16_t in_length)
857 : Parameter_t(pid, in_length)
858 , count(0)
859 {
860 }
861
862};
863
864#define PARAMETER_COUNT_LENGTH 4
865
870{
871public:
872
875
880 : entityId(ENTITYID_UNKNOWN)
881 {
882 }
883
891 ParameterId_t pid,
892 uint16_t in_length)
893 : Parameter_t(pid, in_length)
894 , entityId(ENTITYID_UNKNOWN)
895 {
896 }
897
898};
899
900#define PARAMETER_ENTITYID_LENGTH 4
901
906{
907public:
908
911
916 {
917 }
918
926 ParameterId_t pid,
927 uint16_t in_length)
928 : Parameter_t(pid, in_length)
929 {
930 }
931
932};
933
934#define PARAMETER_TIME_LENGTH 8
935
940{
941public:
942
945
953
961 ParameterId_t pid,
962 uint16_t in_length)
963 : Parameter_t(pid, in_length)
964 , endpointSet(0)
965 {
966 }
967
968};
969
970#define PARAMETER_BUILTINENDPOINTSET_LENGTH 4
971
976{
977public:
978
981
989
997 ParameterId_t pid,
998 uint16_t in_length)
999 : Parameter_t(pid, in_length)
1000 , netconfigSet(0)
1001 {
1002 }
1003
1004};
1005
1006#define PARAMETER_NETWORKCONFIGSET_LENGTH 4
1007
1012{
1013
1015
1016private:
1017
1020
1021public:
1022
1027 {
1028 data = nullptr;
1029 }
1030
1037 void* ptr)
1038 {
1039 data = (fastdds::rtps::octet*)ptr;
1040 }
1041
1047 std::string first() const
1048 {
1049 //Skip the size and return the string
1050 return std::string((char*)data + 4);
1051 }
1052
1058 std::string second() const
1059 {
1060 //Skip the first element
1061 uint32_t size1 = ParameterProperty_t::element_size(data);
1062
1063 //Skip the size of the second element and return the string
1064 return std::string((char*)data + size1 + 4);
1065 }
1066
1074 const std::pair<std::string, std::string>& new_value)
1075 {
1076 uint32_t old_size = size();
1077
1078 uint32_t first_size = (uint32_t)new_value.first.size() + 1;
1079 uint32_t first_alignment = ((first_size + 3u) & ~3u) - first_size;
1080 uint32_t second_size = (uint32_t)new_value.second.size() + 1;
1081 uint32_t second_alignment = ((second_size + 3u) & ~3u) - second_size;
1082 uint32_t new_size = first_size + first_alignment + second_size + second_alignment + 8;
1083
1084 if (old_size != new_size)
1085 {
1086 return false;
1087 }
1088
1089 fastdds::rtps::octet* current = data;
1090 memcpy(current, &first_size, 4);
1091 memcpy(current + 4, new_value.first.c_str(), first_size);
1092 memset(current + 4 + first_size, 0, first_alignment);
1093
1094 current = data + 4 + first_size + first_alignment;
1095 memcpy(current, &second_size, 4);
1096 memcpy(current + 4, new_value.second.c_str(), second_size);
1097 memset(current + 4 + second_size, 0, second_alignment);
1098
1099 return true;
1100 }
1101
1107 std::pair<const std::string, const std::string> pair() const
1108 {
1109 return std::make_pair(std::string(first()), std::string(second()));
1110 }
1111
1117 uint32_t size() const
1118 {
1119 //Size of the first element (with alignment)
1120 uint32_t size1 = ParameterProperty_t::element_size(data);
1121
1122 //Size of the second element (with alignment)
1123 uint32_t size2 = ParameterProperty_t::element_size(data + size1);
1124 return size1 + size2;
1125 }
1126
1128 const ParameterProperty_t& b) const
1129 {
1130 return (first() == b.first()) &&
1131 (second() == b.second());
1132 }
1133
1135 const ParameterProperty_t& b) const
1136 {
1137 return !(*this == b);
1138 }
1139
1140private:
1141
1148 static uint32_t element_size(
1149 const fastdds::rtps::octet* ptr)
1150 {
1151 //Size of the element (with alignment)
1152 uint32_t size = *(uint32_t*)ptr;
1153 return (4u + ((size + 3u) & ~3u));
1154 }
1155
1156};
1157
1163const std::string parameter_property_persistence_guid = "PID_PERSISTENCE_GUID";
1164
1170const std::string parameter_property_participant_type = "PARTICIPANT_TYPE";
1171
1177const std::string parameter_property_ds_version = "DS_VERSION";
1178
1185
1191const char* const parameter_policy_physical_data_host = "fastdds.physical_data.host";
1192
1198const char* const parameter_policy_physical_data_user = "fastdds.physical_data.user";
1199
1205const char* const parameter_policy_physical_data_process = "fastdds.physical_data.process";
1206
1212const char* const parameter_enable_monitor_service = "fastdds.enable_monitor_service";
1213
1219const char* const parameter_policy_type_propagation = "fastdds.type_propagation";
1220
1225{
1226private:
1227
1231 uint32_t Nproperties_ = 0;
1233 bool limit_size_ = false;
1234
1235public:
1236
1238 {
1239 public:
1240
1245 typedef size_t difference_type;
1246 typedef std::forward_iterator_tag iterator_category;
1247
1255 : ptr_(ptr)
1256 , value_(ptr)
1257 {
1258 }
1259
1261 {
1262 advance();
1263 return *this;
1264 }
1265
1267 int)
1268 {
1269 self_type i = *this;
1270 advance();
1271 return i;
1272 }
1273
1275 {
1276 return value_;
1277 }
1278
1280 {
1281 return &value_;
1282 }
1283
1285 const self_type& rhs) const
1286 {
1287 return ptr_ == rhs.ptr_;
1288 }
1289
1291 const self_type& rhs) const
1292 {
1293 return ptr_ != rhs.ptr_;
1294 }
1295
1296 protected:
1297
1301 void advance()
1302 {
1303 ptr_ += value_.size();
1304 value_ = ParameterProperty_t(ptr_);
1305 }
1306
1313 {
1314 return ptr_;
1315 }
1316
1317 private:
1318
1322 ParameterProperty_t value_;
1323 };
1324
1326 {
1327 public:
1328
1333 typedef size_t difference_type;
1334 typedef std::forward_iterator_tag iterator_category;
1335
1342 const fastdds::rtps::octet* ptr)
1343 : ptr_(ptr)
1344 , value_(const_cast<fastdds::rtps::octet*>(ptr))
1345 {
1346 }
1347
1349 {
1350 advance();
1351 return *this;
1352 }
1353
1355 int)
1356 {
1357 self_type i = *this;
1358 advance();
1359 return i;
1360 }
1361
1363 {
1364 return value_;
1365 }
1366
1368 {
1369 return &value_;
1370 }
1371
1373 const self_type& rhs) const
1374 {
1375 return ptr_ == rhs.ptr_;
1376 }
1377
1379 const self_type& rhs) const
1380 {
1381 return ptr_ != rhs.ptr_;
1382 }
1383
1384 protected:
1385
1389 void advance()
1390 {
1391 ptr_ += value_.size();
1392 value_ = ParameterProperty_t(const_cast<fastdds::rtps::octet*>(ptr_));
1393 }
1394
1401 {
1402 return ptr_;
1403 }
1404
1405 private:
1406
1408 const fastdds::rtps::octet* ptr_;
1410 ParameterProperty_t value_;
1411 };
1412
1413public:
1414
1421 , Nproperties_ (0)
1422 , limit_size_ (false)
1423 {
1424 }
1425
1432 uint32_t size)
1434 , properties_(size)
1435 , Nproperties_ (0)
1436 , limit_size_ (size == 0 ? false : true)
1437 {
1438 }
1439
1447 ParameterId_t pid,
1448 uint16_t in_length)
1449 : Parameter_t(PID_PROPERTY_LIST, in_length)
1450 , Nproperties_ (0)
1451 , limit_size_ (false)
1452 {
1453 static_cast<void>(pid);
1454 }
1455
1462 const ParameterPropertyList_t& parameter_properties)
1463 : Parameter_t(PID_PROPERTY_LIST, parameter_properties.length)
1464 , properties_(parameter_properties.limit_size_ ?
1465 parameter_properties.properties_.max_size :
1466 parameter_properties.properties_.length)
1467 , Nproperties_ (parameter_properties.Nproperties_)
1468 , limit_size_ (parameter_properties.limit_size_)
1469 {
1470 properties_.copy(&parameter_properties.properties_, parameter_properties.limit_size_);
1471 }
1472
1474 const ParameterPropertyList_t& parameter_properties)
1475 {
1476 length = parameter_properties.length;
1477 limit_size_ = parameter_properties.limit_size_;
1478 properties_.reserve(limit_size_ ?
1479 parameter_properties.properties_.max_size :
1480 parameter_properties.properties_.length);
1481 properties_.copy(&parameter_properties.properties_, parameter_properties.limit_size_);
1482 Nproperties_ = parameter_properties.Nproperties_;
1483 return *this;
1484 }
1485
1492 {
1493 return iterator(properties_.data);
1494 }
1495
1502 {
1503 return iterator(properties_.data + properties_.length);
1504 }
1505
1512 {
1513 return const_iterator(properties_.data);
1514 }
1515
1522 {
1523 return const_iterator(properties_.data + properties_.length);
1524 }
1525
1533 std::pair<std::string, std::string> p)
1534 {
1535 return push_back(p.first, p.second);
1536 }
1537
1546 const std::string& key,
1547 const std::string& value)
1548 {
1549 auto str1 = reinterpret_cast<const unsigned char*>(key.c_str());
1550 uint32_t size1 = (uint32_t) key.length() + 1;
1551 auto str2 = reinterpret_cast<const unsigned char*>(value.c_str());
1552 uint32_t size2 = (uint32_t) value.length() + 1;
1553
1554 return push_back(str1, size1, str2, size2);
1555 }
1556
1567 const unsigned char* str1,
1568 uint32_t str1_size,
1569 const unsigned char* str2,
1570 uint32_t str2_size)
1571 {
1572 //Realloc if needed;
1573 uint32_t alignment1 = ((str1_size + 3u) & ~3u) - str1_size;
1574 uint32_t alignment2 = ((str2_size + 3u) & ~3u) - str2_size;
1575
1576 if (limit_size_ && (properties_.max_size < properties_.length +
1577 str1_size + alignment1 + 4 +
1578 str2_size + alignment2 + 4))
1579 {
1580 return false;
1581 }
1582 properties_.reserve(properties_.length +
1583 str1_size + alignment1 + 4 +
1584 str2_size + alignment2 + 4);
1585
1586 push_back_helper((fastdds::rtps::octet*)str1, str1_size, alignment1);
1587 push_back_helper((fastdds::rtps::octet*)str2, str2_size, alignment2);
1588 ++Nproperties_;
1589 return true;
1590 }
1591
1600 iterator pos,
1601 const std::pair<std::string, std::string>& new_value)
1602 {
1603 return pos->modify(new_value);
1604 }
1605
1609 void clear()
1610 {
1611 properties_.length = 0;
1612 Nproperties_ = 0;
1613 }
1614
1620 uint32_t size() const
1621 {
1622 return Nproperties_;
1623 }
1624
1629 uint32_t size)
1630 {
1631 properties_.reserve(size);
1632 limit_size_ = true;
1633 }
1634
1640 uint32_t max_size ()
1641 {
1642 return (limit_size_ ? properties_.max_size : 0);
1643 }
1644
1645protected:
1646
1648 const fastdds::rtps::octet* data,
1649 uint32_t size,
1650 uint32_t alignment)
1651 {
1653 memcpy(properties_.data + properties_.length, o, 4);
1654 properties_.length += 4;
1655
1656 memcpy(properties_.data + properties_.length, data, size);
1657 properties_.length += size;
1658
1659 for (uint32_t i = 0; i < alignment; ++i)
1660 {
1661 properties_.data[properties_.length + i] = '\0';
1662 }
1663 properties_.length += alignment;
1664 }
1665
1666};
1667
1668
1673{
1674public:
1675
1678
1683 : sample_id(fastdds::rtps::SampleIdentity::unknown())
1684 {
1685 }
1686
1694 ParameterId_t pid,
1695 uint16_t in_length)
1696 : Parameter_t(pid, in_length)
1697 , sample_id(fastdds::rtps::SampleIdentity::unknown())
1698 {
1699 }
1700
1708 fastdds::rtps::CDRMessage_t* msg) const;
1709
1719 uint16_t size);
1720
1721};
1722
1723#define PARAMETER_SAMPLEIDENTITY_LENGTH 24
1724
1725
1726#if HAVE_SECURITY
1727
1731class ParameterToken_t : public Parameter_t
1732{
1733public:
1734
1736 fastdds::rtps::Token token;
1737
1741 ParameterToken_t()
1742 {
1743 }
1744
1751 ParameterToken_t(
1752 ParameterId_t pid,
1753 uint16_t in_length)
1754 : Parameter_t(pid, in_length)
1755 {
1756 }
1757
1758};
1759
1761#define PARAMETER_PARTICIPANT_SECURITY_INFO_LENGTH 8
1762
1766class ParameterParticipantSecurityInfo_t : public Parameter_t
1767{
1768public:
1769
1771 fastdds::rtps::security::ParticipantSecurityAttributesMask security_attributes = 0;
1773 fastdds::rtps::security::PluginParticipantSecurityAttributesMask plugin_security_attributes = 0;
1774
1780 ParameterParticipantSecurityInfo_t()
1781 : Parameter_t(PID_PARTICIPANT_SECURITY_INFO, PARAMETER_PARTICIPANT_SECURITY_INFO_LENGTH)
1782 {
1783 }
1784
1791 ParameterParticipantSecurityInfo_t(
1792 ParameterId_t pid,
1793 uint16_t in_length)
1794 : Parameter_t(pid, in_length)
1795 {
1796 }
1797
1798};
1799
1801#define PARAMETER_ENDPOINT_SECURITY_INFO_LENGTH 8
1802
1806class ParameterEndpointSecurityInfo_t : public Parameter_t
1807{
1808public:
1809
1810 fastdds::rtps::security::EndpointSecurityAttributesMask security_attributes = 0;
1811 fastdds::rtps::security::PluginEndpointSecurityAttributesMask plugin_security_attributes = 0;
1812
1818 ParameterEndpointSecurityInfo_t()
1819 : Parameter_t(PID_ENDPOINT_SECURITY_INFO, PARAMETER_ENDPOINT_SECURITY_INFO_LENGTH)
1820 {
1821 }
1822
1829 ParameterEndpointSecurityInfo_t(
1830 ParameterId_t pid,
1831 uint16_t in_length)
1832 : Parameter_t(pid, in_length)
1833 {
1834 }
1835
1836};
1837
1838#endif // if HAVE_SECURITY
1839
1841
1842template<class T, class PL>
1844 const T& p,
1845 const char* PID,
1846 PL& properties)
1847{
1848 // only valid values
1849 if (p == T::unknown())
1850 {
1851 return;
1852 }
1853
1854 // generate pair
1855 std::pair<std::string, std::string> pair;
1856 pair.first = PID;
1857
1858 std::ostringstream data;
1859 data << p;
1860 pair.second = data.str();
1861
1862 // if exists replace
1863 auto it = std::find_if(
1864 properties.begin(),
1865 properties.end(),
1866 [&pair](const typename PL::const_iterator::reference p)
1867 {
1868 return pair.first == p.first();
1869 });
1870
1871 if (it != properties.end())
1872 {
1873 // it->modify(pair);
1874 properties.set_property(it, pair);
1875 }
1876 else
1877 {
1878 // if not exists add
1879 properties.push_back(pair.first, pair.second);
1880 }
1881}
1882
1883template<class T, class PL>
1885 const char* const PID,
1886 PL& properties)
1887{
1888 T property;
1889
1890 auto it = std::find_if(
1891 properties.begin(),
1892 properties.end(),
1893 [PID](const typename PL::const_iterator::reference p)
1894 {
1895 return PID == p.first();
1896 });
1897
1898 if (it != properties.end())
1899 {
1900 std::istringstream in(it->second());
1901 in >> property;
1902 }
1903
1904 return property;
1905}
1906
1907} //namespace dds
1908
1909namespace rtps {
1910
1932#if HAVE_SECURITY
1933using ParameterToken_t = fastdds::dds::ParameterToken_t;
1934using ParameterParticipantSecurityInfo_t = fastdds::dds::ParameterParticipantSecurityInfo_t;
1935using ParameterEndpointSecurityInfo_t = fastdds::dds::ParameterEndpointSecurityInfo_t;
1936#endif // if HAVE_SECURITY
1937
1938} //namespace rtps
1939} //namespace fastdds
1940} //namespace eprosima
1941
1942#endif // ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
1943#endif // FASTDDS_DDS_CORE_POLICY__PARAMETERTYPES_HPP
Base Parameter class with parameter PID and parameter length in bytes.
Definition ParameterTypes.hpp:183
ParameterId_t Pid
Parameter ID. By default, PID_PAD.
Definition ParameterTypes.hpp:226
FASTDDS_EXPORTED_API Parameter_t()
Constructor without parameters.
Definition ParameterTypes.hpp:189
uint16_t length
Parameter length. By default, 0.
Definition ParameterTypes.hpp:228
FASTDDS_EXPORTED_API Parameter_t(ParameterId_t pid, uint16_t length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:201
virtual FASTDDS_EXPORTED_API ~Parameter_t()
Destructor.
Definition ParameterTypes.hpp:212
bool operator==(const Parameter_t &b) const
Definition ParameterTypes.hpp:216
Definition ParameterTypes.hpp:730
bool value
Boolean By default, false.
Definition ParameterTypes.hpp:734
ParameterBool_t()
Constructor without parameter.
Definition ParameterTypes.hpp:739
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:765
ParameterBool_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:750
ParameterBuiltinEndpointSet_t()
Constructor without parameters.
Definition ParameterTypes.hpp:949
ParameterBuiltinEndpointSet_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:960
fastdds::rtps::BuiltinEndpointSet_t endpointSet
Builtin Endpoint Set By default, 0.
Definition ParameterTypes.hpp:944
Definition ParameterTypes.hpp:834
ParameterCount_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:854
fastdds::rtps::Count_t count
Count By default, 0.
Definition ParameterTypes.hpp:838
ParameterCount_t()
Constructor without parameter.
Definition ParameterTypes.hpp:843
Definition ParameterTypes.hpp:532
uint32_t domain_id
Domain ID. By default, DOMAIN_ID_UNKNOWN.
Definition ParameterTypes.hpp:536
ParameterDomainId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:552
ParameterDomainId_t()
Constructor without parameters.
Definition ParameterTypes.hpp:541
Definition ParameterTypes.hpp:870
ParameterEntityId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:890
ParameterEntityId_t()
Constructor without parameters.
Definition ParameterTypes.hpp:879
fastdds::rtps::EntityId_t entityId
EntityId By default, ENTITYID_UNKNOWN.
Definition ParameterTypes.hpp:874
Definition ParameterTypes.hpp:466
ParameterGuid_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:485
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:515
fastdds::rtps::GUID_t guid
GUID By default, unknown GUID.
Definition ParameterTypes.hpp:470
ParameterGuid_t()
Constructor without parameters.
Definition ParameterTypes.hpp:475
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:499
Definition ParameterTypes.hpp:674
ParameterIP4Address_t()
Constructor without parameters.
Definition ParameterTypes.hpp:683
ParameterIP4Address_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:694
fastdds::rtps::octet address[4]
Address By default [0,0,0,0].
Definition ParameterTypes.hpp:678
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:710
Definition ParameterTypes.hpp:235
ParameterKey_t()
Constructor without parameters.
Definition ParameterTypes.hpp:243
ParameterKey_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:253
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:267
fastdds::rtps::InstanceHandle_t key
Instance Handle. By default, c_InstanceHandle_Unknown.
Definition ParameterTypes.hpp:239
Definition ParameterTypes.hpp:284
ParameterLocator_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:303
rtps::Locator locator
Locator.
Definition ParameterTypes.hpp:288
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:317
ParameterLocator_t()
Constructor without parameters.
Definition ParameterTypes.hpp:293
fastdds::rtps::NetworkConfigSet_t netconfigSet
Network Config Set By default, 0.
Definition ParameterTypes.hpp:980
ParameterNetworkConfigSet_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:996
ParameterNetworkConfigSet_t()
Constructor without parameters.
Definition ParameterTypes.hpp:985
Definition ParameterTypes.hpp:414
uint32_t port
Port. By default, 0.
Definition ParameterTypes.hpp:418
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:449
ParameterPort_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:434
ParameterPort_t()
Constructor without parameters.
Definition ParameterTypes.hpp:423
Definition ParameterTypes.hpp:641
ParameterProductVersion_t()
Constructor without parameters.
Definition ParameterTypes.hpp:649
rtps::ProductVersion_t version
Definition ParameterTypes.hpp:644
ParameterProductVersion_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:659
Definition ParameterTypes.hpp:1012
std::string second() const
Getter for the second element in data.
Definition ParameterTypes.hpp:1058
ParameterProperty_t()
Constructor without parameters.
Definition ParameterTypes.hpp:1026
uint32_t size() const
Getter for data size.
Definition ParameterTypes.hpp:1117
bool modify(const std::pair< std::string, std::string > &new_value)
Setter using a pair of strings.
Definition ParameterTypes.hpp:1073
bool operator==(const ParameterProperty_t &b) const
Definition ParameterTypes.hpp:1127
ParameterProperty_t(void *ptr)
Constructor using a pointer.
Definition ParameterTypes.hpp:1036
std::string first() const
Getter for the first element in data.
Definition ParameterTypes.hpp:1047
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:1107
bool operator!=(const ParameterProperty_t &b) const
Definition ParameterTypes.hpp:1134
const fastdds::rtps::octet * address() const
Getter for the pointer.
Definition ParameterTypes.hpp:1400
pointer operator->()
Definition ParameterTypes.hpp:1367
size_t difference_type
Definition ParameterTypes.hpp:1333
self_type operator++()
Definition ParameterTypes.hpp:1348
bool operator==(const self_type &rhs) const
Definition ParameterTypes.hpp:1372
std::forward_iterator_tag iterator_category
Definition ParameterTypes.hpp:1334
bool operator!=(const self_type &rhs) const
Definition ParameterTypes.hpp:1378
reference operator*()
Definition ParameterTypes.hpp:1362
const_iterator self_type
Definition ParameterTypes.hpp:1329
const_iterator(const fastdds::rtps::octet *ptr)
Constructor using a pointer.
Definition ParameterTypes.hpp:1341
void advance()
Shift the pointer to the next value.
Definition ParameterTypes.hpp:1389
const ParameterProperty_t * pointer
Definition ParameterTypes.hpp:1332
const ParameterProperty_t value_type
Definition ParameterTypes.hpp:1330
const ParameterProperty_t & reference
Definition ParameterTypes.hpp:1331
fastdds::rtps::octet * address() const
Getter for the pointer.
Definition ParameterTypes.hpp:1312
ParameterProperty_t value_type
Definition ParameterTypes.hpp:1242
pointer operator->()
Definition ParameterTypes.hpp:1279
size_t difference_type
Definition ParameterTypes.hpp:1245
self_type operator++()
Definition ParameterTypes.hpp:1260
bool operator==(const self_type &rhs) const
Definition ParameterTypes.hpp:1284
std::forward_iterator_tag iterator_category
Definition ParameterTypes.hpp:1246
ParameterProperty_t * pointer
Definition ParameterTypes.hpp:1244
bool operator!=(const self_type &rhs) const
Definition ParameterTypes.hpp:1290
reference operator*()
Definition ParameterTypes.hpp:1274
void advance()
Shift the pointer to the next value.
Definition ParameterTypes.hpp:1301
ParameterProperty_t & reference
Definition ParameterTypes.hpp:1243
iterator(fastdds::rtps::octet *ptr)
Constructor using an octet pointer.
Definition ParameterTypes.hpp:1253
iterator self_type
Definition ParameterTypes.hpp:1241
Definition ParameterTypes.hpp:1225
ParameterPropertyList_t(const ParameterPropertyList_t &parameter_properties)
Constructor using a Parameter Property List.
Definition ParameterTypes.hpp:1461
const_iterator begin() const
Getter for the first position of the ParameterPropertyList.
Definition ParameterTypes.hpp:1511
bool push_back(std::pair< std::string, std::string > p)
Introduce a new property in the ParameterPropertyList.
Definition ParameterTypes.hpp:1532
ParameterPropertyList_t & operator=(const ParameterPropertyList_t &parameter_properties)
Definition ParameterTypes.hpp:1473
void push_back_helper(const fastdds::rtps::octet *data, uint32_t size, uint32_t alignment)
Definition ParameterTypes.hpp:1647
uint32_t max_size()
Getter for the maximum size of the ParameterPropertyList.
Definition ParameterTypes.hpp:1640
ParameterPropertyList_t(uint32_t size)
Constructor with a defined maximum size.
Definition ParameterTypes.hpp:1431
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:1599
uint32_t size() const
Getter for the size of the ParameterPropertyList.
Definition ParameterTypes.hpp:1620
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:1566
ParameterPropertyList_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:1446
void set_max_size(uint32_t size)
Setter for the maximum size of the ParameterPropertyList.
Definition ParameterTypes.hpp:1628
bool push_back(const std::string &key, const std::string &value)
Introduce a new property in the ParameterPropertyList.
Definition ParameterTypes.hpp:1545
void clear()
Clears the ParameterPropertyList.
Definition ParameterTypes.hpp:1609
iterator end()
Getter for the end of the ParameterPropertyList.
Definition ParameterTypes.hpp:1501
const_iterator end() const
Getter for the end of the ParameterPropertyList.
Definition ParameterTypes.hpp:1521
iterator begin()
Getter for the first position of the ParameterPropertyList.
Definition ParameterTypes.hpp:1491
ParameterPropertyList_t()
Constructor without parameters Sets PID_PROPERTY_LIST as the PID of the parameter.
Definition ParameterTypes.hpp:1419
ParameterProtocolVersion_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:589
fastdds::rtps::ProtocolVersion_t protocolVersion
Protocol Version. By default, c_ProtocolVersion.
Definition ParameterTypes.hpp:573
ParameterProtocolVersion_t()
Constructor without parameters.
Definition ParameterTypes.hpp:578
Definition ParameterTypes.hpp:1673
ParameterSampleIdentity_t()
Constructor without parameters.
Definition ParameterTypes.hpp:1682
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:1693
fastdds::rtps::SampleIdentity sample_id
Sample Identity By default, unknown.
Definition ParameterTypes.hpp:1677
Definition ParameterTypes.hpp:782
ParameterStatusInfo_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:802
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:817
ParameterStatusInfo_t()
Constructor without parameter.
Definition ParameterTypes.hpp:791
uint8_t status
Status By default, 0.
Definition ParameterTypes.hpp:786
Definition ParameterTypes.hpp:334
size_t size() const
Getter for the name size.
Definition ParameterTypes.hpp:399
const char * getName() const
Getter for the name.
Definition ParameterTypes.hpp:378
ParameterString_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:350
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:364
void setName(const char *name)
Setter for the name.
Definition ParameterTypes.hpp:388
ParameterString_t()
Constructor without parameters.
Definition ParameterTypes.hpp:340
Definition ParameterTypes.hpp:906
fastdds::rtps::Time_t time
Time By default, 0.
Definition ParameterTypes.hpp:910
ParameterTime_t()
Constructor without parameters.
Definition ParameterTypes.hpp:915
ParameterTime_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:925
Definition ParameterTypes.hpp:605
ParameterVendorId_t()
Constructor without parameters.
Definition ParameterTypes.hpp:614
fastdds::rtps::VendorId_t vendorId
Vendor Id. By default, c_VendorId_eProsima.
Definition ParameterTypes.hpp:609
ParameterVendorId_t(ParameterId_t pid, uint16_t in_length)
Constructor using a parameter PID and the parameter length.
Definition ParameterTypes.hpp:625
Class Locator_t, uniquely identifies a communication channel for a particular transport.
Definition Locator.hpp:71
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:1170
const char *const parameter_enable_monitor_service
Parameter property value for enabling the monitor service.
Definition ParameterTypes.hpp:1212
const char *const parameter_policy_type_propagation
Parameter property value for configuring type propagation.
Definition ParameterTypes.hpp:1219
ParameterId_t
Enum for the unique parameter identifier.
Definition ParameterTypes.hpp:69
const std::string parameter_property_persistence_guid
Parameter property ID for persistence GUID.
Definition ParameterTypes.hpp:1163
const std::string parameter_property_ds_version
Parameter property ID for Discovery Server version.
Definition ParameterTypes.hpp:1177
const char *const parameter_policy_physical_data_host
Parameter property value for Host physical data.
Definition ParameterTypes.hpp:1191
const std::string parameter_property_current_ds_version
Parameter property value for Discovery Server version.
Definition ParameterTypes.hpp:1184
const char *const parameter_policy_physical_data_process
Parameter property value for Process physical data.
Definition ParameterTypes.hpp:1205
const char *const parameter_policy_physical_data_user
Parameter property value for User physical data.
Definition ParameterTypes.hpp:1198
@ PID_TOPIC_NAME
Definition ParameterTypes.hpp:74
@ PID_SENTINEL
Definition ParameterTypes.hpp:72
@ PID_TOPIC_DATA
Definition ParameterTypes.hpp:77
@ PID_GROUP_SEQ_NUM
Definition ParameterTypes.hpp:124
@ PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT
Definition ParameterTypes.hpp:105
@ PID_DURABILITY_SERVICE
Definition ParameterTypes.hpp:79
@ PID_UNICAST_LOCATOR
Definition ParameterTypes.hpp:98
@ PID_LIVELINESS
Definition ParameterTypes.hpp:82
@ PID_OWNERSHIP
Definition ParameterTypes.hpp:88
@ PID_EXPECTS_INLINE_QOS
Definition ParameterTypes.hpp:104
@ PID_COHERENT_SET
Definition ParameterTypes.hpp:120
@ PID_LATENCY_BUDGET
Definition ParameterTypes.hpp:81
@ PID_RESOURCE_LIMITS
Definition ParameterTypes.hpp:87
@ PID_GROUP_GUID
Definition ParameterTypes.hpp:109
@ PID_TYPE_MAX_SIZE_SERIALIZED
Definition ParameterTypes.hpp:114
@ PID_SERVICE_INSTANCE_NAME
Definition ParameterTypes.hpp:163
@ PID_DATASHARING
Definition ParameterTypes.hpp:172
@ PID_PROTOCOL_VERSION
Definition ParameterTypes.hpp:96
@ PID_BUILTIN_ENDPOINT_SET
Definition ParameterTypes.hpp:111
@ PID_PAD
Definition ParameterTypes.hpp:71
@ PID_WRITER_GROUP_INFO
Definition ParameterTypes.hpp:125
@ PID_RELIABILITY
Definition ParameterTypes.hpp:83
@ PID_VENDORID
Definition ParameterTypes.hpp:97
@ PID_PARTICIPANT_SECURITY_INFO
Definition ParameterTypes.hpp:151
@ PID_CONTENT_FILTER_INFO
Definition ParameterTypes.hpp:119
@ PID_TOPIC_ALIASES
Definition ParameterTypes.hpp:165
@ PID_DURABILITY
Definition ParameterTypes.hpp:78
@ PID_METATRAFFIC_MULTICAST_LOCATOR
Definition ParameterTypes.hpp:103
@ PID_PROPERTY_LIST
Definition ParameterTypes.hpp:113
@ PID_USER_DATA
Definition ParameterTypes.hpp:73
@ PID_DIRECTED_WRITE
Definition ParameterTypes.hpp:121
@ PID_ORIGINAL_WRITER_INFO
Definition ParameterTypes.hpp:122
@ PID_BUILTIN_ENDPOINT_QOS
Definition ParameterTypes.hpp:112
@ PID_DEFAULT_MULTICAST_LOCATOR
Definition ParameterTypes.hpp:101
@ PID_DEADLINE
Definition ParameterTypes.hpp:80
@ PID_RELATED_ENTITY_GUID
Definition ParameterTypes.hpp:164
@ PID_TYPE_IDV1
Definition ParameterTypes.hpp:142
@ PID_IDENTITY_TOKEN
Definition ParameterTypes.hpp:149
@ PID_PARTICIPANT_GUID
Definition ParameterTypes.hpp:108
@ PID_TYPE_INFORMATION
Definition ParameterTypes.hpp:146
@ PID_IDENTITY_STATUS_TOKEN
Definition ParameterTypes.hpp:157
@ PID_DESTINATION_ORDER
Definition ParameterTypes.hpp:85
@ PID_MULTICAST_LOCATOR
Definition ParameterTypes.hpp:99
@ PID_GROUP_ENTITYID
Definition ParameterTypes.hpp:110
@ PID_KEY_HASH
Definition ParameterTypes.hpp:127
@ PID_PRESENTATION
Definition ParameterTypes.hpp:90
@ PID_RELATED_SAMPLE_IDENTITY
Definition ParameterTypes.hpp:166
@ PID_NETWORK_CONFIGURATION_SET
Definition ParameterTypes.hpp:173
@ PID_LIFESPAN
Definition ParameterTypes.hpp:84
@ PID_DISABLE_POSITIVE_ACKS
Definition ParameterTypes.hpp:171
@ PID_TYPE_CONSISTENCY_ENFORCEMENT
Definition ParameterTypes.hpp:145
@ PID_CUSTOM_RELATED_SAMPLE_IDENTITY
Definition ParameterTypes.hpp:174
@ PID_OWNERSHIP_STRENGTH
Definition ParameterTypes.hpp:89
@ PID_ENDPOINT_GUID
Definition ParameterTypes.hpp:116
@ PID_PARTITION
Definition ParameterTypes.hpp:91
@ PID_DATA_TAGS
Definition ParameterTypes.hpp:160
@ PID_ENTITY_NAME
Definition ParameterTypes.hpp:115
@ PID_DEFAULT_UNICAST_LOCATOR
Definition ParameterTypes.hpp:100
@ PID_TRANSPORT_PRIORITY
Definition ParameterTypes.hpp:93
@ PID_METATRAFFIC_UNICAST_LOCATOR
Definition ParameterTypes.hpp:102
@ PID_PARTICIPANT_LEASE_DURATION
Definition ParameterTypes.hpp:106
@ PID_CONTENT_FILTER_PROPERTY
Definition ParameterTypes.hpp:107
@ PID_STATUS_INFO
Definition ParameterTypes.hpp:128
@ PID_TIME_BASED_FILTER
Definition ParameterTypes.hpp:92
@ PID_GROUP_COHERENT_SET
Definition ParameterTypes.hpp:123
@ PID_GROUP_DATA
Definition ParameterTypes.hpp:76
@ PID_PRODUCT_VERSION
Definition ParameterTypes.hpp:169
@ PID_ENDPOINT_SECURITY_INFO
Definition ParameterTypes.hpp:154
@ PID_SECURE_WRITER_GROUP_INFO
Definition ParameterTypes.hpp:126
@ PID_HISTORY
Definition ParameterTypes.hpp:86
@ PID_TYPE_OBJECTV1
Definition ParameterTypes.hpp:143
@ PID_DOMAIN_ID
Definition ParameterTypes.hpp:94
@ PID_PERSISTENCE_GUID
Definition ParameterTypes.hpp:170
@ PID_DOMAIN_TAG
Definition ParameterTypes.hpp:95
@ PID_PERMISSIONS_TOKEN
Definition ParameterTypes.hpp:150
@ PID_DATA_REPRESENTATION
Definition ParameterTypes.hpp:144
@ PID_TYPE_NAME
Definition ParameterTypes.hpp:75
Definition DomainParticipant.hpp:45
const DomainId_t DOMAIN_ID_UNKNOWN
Definition Types.hpp:26
void set_proxy_property(const T &p, const char *PID, PL &properties)
Definition ParameterTypes.hpp:1843
T get_proxy_property(const char *const PID, PL &properties)
Definition ParameterTypes.hpp:1884
uint32_t PluginEndpointSecurityAttributesMask
Definition EndpointSecurityAttributes.hpp:28
uint32_t EndpointSecurityAttributesMask
Definition EndpointSecurityAttributes.hpp:63
uint32_t BuiltinEndpointSet_t
Definition Types.hpp:87
unsigned char octet
Definition Types.hpp:83
eprosima::fastdds::rtps::VendorId_t VendorId_t
Structure VendorId_t, specifying the vendor Id of the implementation.
Definition Types.hpp:163
uint32_t Count_t
Definition Types.hpp:89
const ProtocolVersion_t c_ProtocolVersion
Definition Types.hpp:159
fastdds::dds::Parameter_t Parameter_t
Definition ParameterTypes.hpp:1912
void iHandle2GUID(GUID_t &guid, const InstanceHandle_t &ihandle) noexcept
Convert InstanceHandle_t to GUID.
Definition InstanceHandle.hpp:249
uint32_t NetworkConfigSet_t
Definition Types.hpp:88
eProsima namespace.
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:104
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