Fast RTPS  Version 2.14.1
Fast RTPS
Loading...
Searching...
No Matches
XMLParser.h
1// Copyright 2017 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//
15#ifndef XML_PARSER_H_
16#define XML_PARSER_H_
17
18#include <cstdint>
19#include <cstdio>
20#include <map>
21#include <memory>
22#include <string>
23
24#include <fastdds/dds/core/policy/QosPolicies.hpp>
25#include <fastdds/dds/domain/qos/DomainParticipantFactoryQos.hpp>
26#include <fastdds/rtps/attributes/ThreadSettings.hpp>
27#include <fastdds/rtps/transport/PortBasedTransportDescriptor.hpp>
28#include <fastdds/rtps/transport/SocketTransportDescriptor.h>
29#include <fastrtps/attributes/LibrarySettingsAttributes.h>
30#include <fastrtps/attributes/ParticipantAttributes.h>
31#include <fastrtps/attributes/PublisherAttributes.h>
32#include <fastrtps/attributes/ReplierAttributes.hpp>
33#include <fastrtps/attributes/RequesterAttributes.hpp>
34#include <fastrtps/attributes/SubscriberAttributes.h>
35#include <fastrtps/transport/TransportDescriptorInterface.h>
36#include <fastrtps/types/DynamicTypeBuilderPtr.h>
37#include <fastrtps/xmlparser/XMLParserCommon.h>
38
39namespace tinyxml2 {
40class XMLElement;
41class XMLDocument;
42} // namespace tinyxml2
43
44namespace eprosima {
45namespace fastrtps {
46namespace xmlparser {
47
48class BaseNode;
49template <class T> class DataNode;
50
51typedef std::unique_ptr<BaseNode> up_base_node_t;
52typedef std::vector<up_base_node_t> up_base_node_vector_t;
53typedef std::map<std::string, std::string> node_att_map_t;
54typedef node_att_map_t::iterator node_att_map_it_t;
55typedef node_att_map_t::const_iterator node_att_map_cit_t;
56
57typedef std::shared_ptr<fastdds::rtps::TransportDescriptorInterface> sp_transport_t;
58typedef std::map<std::string, sp_transport_t> sp_transport_map_t;
60typedef std::map<std::string, p_dynamictypebuilder_t> p_dynamictype_map_t;
61
62typedef std::unique_ptr<fastdds::dds::DomainParticipantFactoryQos> up_participantfactory_t;
65typedef std::unique_ptr<node_participantfactory_t> up_node_participantfactory_t;
66
67typedef std::unique_ptr<ParticipantAttributes> up_participant_t;
70typedef std::unique_ptr<node_participant_t> up_node_participant_t;
71
72typedef std::unique_ptr<PublisherAttributes> up_publisher_t;
75typedef std::unique_ptr<node_publisher_t> up_node_publisher_t;
76
77typedef std::unique_ptr<SubscriberAttributes> up_subscriber_t;
80typedef std::unique_ptr<node_subscriber_t> up_node_subscriber_t;
81
82typedef std::unique_ptr<TopicAttributes> up_topic_t;
85typedef std::unique_ptr<node_topic_t> up_node_topic_t;
86
87typedef std::unique_ptr<RequesterAttributes> up_requester_t;
90typedef std::unique_ptr<node_requester_t> up_node_requester_t;
91
92typedef std::unique_ptr<ReplierAttributes> up_replier_t;
95typedef std::unique_ptr<node_replier_t> up_node_replier_t;
96
102{
103
104public:
105
110 RTPS_DllAPI static XMLP_ret loadDefaultXMLFile(
111 up_base_node_t& root);
112
119 RTPS_DllAPI static XMLP_ret loadXML(
120 const std::string& filename,
121 up_base_node_t& root);
122
130 RTPS_DllAPI static XMLP_ret loadXML(
131 const char* data,
132 size_t length,
133 up_base_node_t& root);
134
141 RTPS_DllAPI static XMLP_ret loadXML(
142 tinyxml2::XMLDocument& xmlDoc,
143 up_base_node_t& root);
144
151 RTPS_DllAPI static XMLP_ret loadXMLProfiles(
152 tinyxml2::XMLElement& profiles,
153 up_base_node_t& root);
154
160 RTPS_DllAPI static XMLP_ret loadXMLDynamicTypes(
161 tinyxml2::XMLElement& types);
162
163protected:
164
165 RTPS_DllAPI static XMLP_ret parseXML(
166 tinyxml2::XMLDocument& xmlDoc,
167 up_base_node_t& root);
168
169 RTPS_DllAPI static XMLP_ret parseXMLProfiles(
170 tinyxml2::XMLElement& profiles,
171 up_base_node_t& root);
172
173 RTPS_DllAPI static XMLP_ret parseProfiles(
174 tinyxml2::XMLElement* p_root,
175 BaseNode& profilesNode);
176
177
183 RTPS_DllAPI static XMLP_ret parseLogConfig(
184 tinyxml2::XMLElement* p_root);
185
187 tinyxml2::XMLElement* p_root);
188
190 tinyxml2::XMLElement* p_root);
191
193 tinyxml2::XMLElement* p_root,
194 BaseNode& rootNode);
195
197 tinyxml2::XMLElement* p_root,
198 BaseNode& rootNode);
199
200 RTPS_DllAPI static XMLP_ret parseXMLPublisherProf(
201 tinyxml2::XMLElement* p_root,
202 BaseNode& rootNode);
203
205 tinyxml2::XMLElement* p_root,
206 BaseNode& rootNode);
207
208 RTPS_DllAPI static XMLP_ret parseXMLTopicData(
209 tinyxml2::XMLElement* p_root,
210 BaseNode& rootNode);
211
212 RTPS_DllAPI static XMLP_ret parseXMLRequesterProf(
213 tinyxml2::XMLElement* p_root,
214 BaseNode& rootNode);
215
216 RTPS_DllAPI static XMLP_ret parseXMLReplierProf(
217 tinyxml2::XMLElement* p_root,
218 BaseNode& rootNode);
219
220 RTPS_DllAPI static XMLP_ret parseXMLTransportData(
221 tinyxml2::XMLElement* p_root);
222
224 tinyxml2::XMLElement& p_root);
225
227 tinyxml2::XMLElement* p_root,
228 sp_transport_t p_transport);
229
231 tinyxml2::XMLElement* p_root,
232 std::shared_ptr<fastdds::rtps::PortBasedTransportDescriptor> p_transport);
233
235 tinyxml2::XMLElement* p_root,
236 std::shared_ptr<fastdds::rtps::SocketTransportDescriptor> p_transport);
237
238 RTPS_DllAPI static XMLP_ret parseXMLInterfaces(
239 tinyxml2::XMLElement* p_root,
240 std::shared_ptr<fastdds::rtps::SocketTransportDescriptor> p_transport);
241
242 RTPS_DllAPI static XMLP_ret parseXMLAllowlist(
243 tinyxml2::XMLElement* p_root,
244 std::shared_ptr<fastdds::rtps::SocketTransportDescriptor> p_transport);
245
246 RTPS_DllAPI static XMLP_ret parseXMLBlocklist(
247 tinyxml2::XMLElement* p_root,
248 std::shared_ptr<fastdds::rtps::SocketTransportDescriptor> p_transport);
249
251 tinyxml2::XMLElement* p_root,
252 sp_transport_t p_transport);
253
255 tinyxml2::XMLElement* p_root,
256 sp_transport_t p_transport);
257
258 RTPS_DllAPI static XMLP_ret parse_tls_config(
259 tinyxml2::XMLElement* p_root,
260 sp_transport_t tcp_transport);
261
263 tinyxml2::XMLElement& p_root,
264 fastdds::rtps::PortBasedTransportDescriptor::ReceptionThreadsConfigMap& reception_threads);
265
271 RTPS_DllAPI static XMLP_ret parseXMLConsumer(
272 tinyxml2::XMLElement& consumer);
273
274 RTPS_DllAPI static XMLP_ret parseXMLDynamicTypes(
275 tinyxml2::XMLElement& types);
276
277 RTPS_DllAPI static XMLP_ret parseDynamicTypes(
278 tinyxml2::XMLElement* p_root);
279
280 RTPS_DllAPI static XMLP_ret parseXMLTypes(
281 tinyxml2::XMLElement* p_root);
282
283 RTPS_DllAPI static XMLP_ret parseXMLDynamicType(
284 tinyxml2::XMLElement* p_root);
285
287 tinyxml2::XMLElement* p_root);
288
290 tinyxml2::XMLElement* p_root);
291
293 tinyxml2::XMLElement* p_root);
294
296 tinyxml2::XMLElement* p_root);
297
299 tinyxml2::XMLElement* p_root);
300
302 tinyxml2::XMLElement* p_root);
303
305 tinyxml2::XMLElement* p_root,
306 p_dynamictypebuilder_t p_dynamictype,
307 types::MemberId mId,
308 uint16_t& position);
309
311 tinyxml2::XMLElement* p_root,
312 p_dynamictypebuilder_t p_dynamictype,
313 uint16_t& position);
314
316 tinyxml2::XMLElement* p_root,
317 p_dynamictypebuilder_t p_dynamictype,
318 types::MemberId mId);
319
321 tinyxml2::XMLElement* p_root,
322 p_dynamictypebuilder_t p_dynamictype,
323 types::MemberId mId,
324 const std::string& values);
325
326 RTPS_DllAPI static XMLP_ret fillDataNode(
327 tinyxml2::XMLElement* p_profile,
329
330 RTPS_DllAPI static XMLP_ret fillDataNode(
331 tinyxml2::XMLElement* p_profile,
332 DataNode<ParticipantAttributes>& participant_node);
333
334 RTPS_DllAPI static XMLP_ret fillDataNode(
335 tinyxml2::XMLElement* p_profile,
336 DataNode<PublisherAttributes>& publisher_node);
337
338 RTPS_DllAPI static XMLP_ret fillDataNode(
339 tinyxml2::XMLElement* p_profile,
340 DataNode<SubscriberAttributes>& subscriber_node);
341
342 RTPS_DllAPI static XMLP_ret fillDataNode(
343 tinyxml2::XMLElement* node,
344 DataNode<TopicAttributes>& topic_node);
345
346 RTPS_DllAPI static XMLP_ret fillDataNode(
347 tinyxml2::XMLElement* node,
348 DataNode<RequesterAttributes>& requester_node);
349
350 RTPS_DllAPI static XMLP_ret fillDataNode(
351 tinyxml2::XMLElement* node,
352 DataNode<ReplierAttributes>& replier_node);
353
354 template <typename T>
355 RTPS_DllAPI static void addAllAttributes(
356 tinyxml2::XMLElement* p_profile,
357 DataNode<T>& node);
358
359 RTPS_DllAPI static XMLP_ret getXMLEnum(
360 tinyxml2::XMLElement* elem,
362 uint8_t ident);
363
365 tinyxml2::XMLElement* elem,
366 rtps::PropertyPolicy& propertiesPolicy,
367 uint8_t ident);
368
370 tinyxml2::XMLElement* elem,
371 rtps::MemoryManagementPolicy_t& historyMemoryPolicy,
372 uint8_t ident);
373
375 tinyxml2::XMLElement* elem,
376 fastdds::rtps::ExternalLocators& external_locators,
377 uint8_t ident);
378
379 RTPS_DllAPI static XMLP_ret getXMLLocatorList(
380 tinyxml2::XMLElement* elem,
381 rtps::LocatorList_t& locatorList,
382 uint8_t ident);
383
384 RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv4(
385 tinyxml2::XMLElement* elem,
386 rtps::Locator_t& locator,
387 uint8_t ident);
388
389 RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv6(
390 tinyxml2::XMLElement* elem,
391 rtps::Locator_t& locator,
392 uint8_t ident);
393
394 RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv4(
395 tinyxml2::XMLElement* elem,
396 rtps::Locator_t& locator,
397 uint8_t ident);
398
399 RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv6(
400 tinyxml2::XMLElement* elem,
401 rtps::Locator_t& locator,
402 uint8_t ident);
403
404 RTPS_DllAPI static XMLP_ret getXMLWriterTimes(
405 tinyxml2::XMLElement* elem,
406 rtps::WriterTimes& times,
407 uint8_t ident);
408
409 RTPS_DllAPI static XMLP_ret getXMLReaderTimes(
410 tinyxml2::XMLElement* elem,
411 rtps::ReaderTimes& times,
412 uint8_t ident);
413
414 RTPS_DllAPI static XMLP_ret getXMLDuration(
415 tinyxml2::XMLElement* elem,
416 Duration_t& duration,
417 uint8_t ident);
418
420 tinyxml2::XMLElement* elem,
421 WriterQos& qos,
422 uint8_t ident);
423
425 tinyxml2::XMLElement* elem,
426 ReaderQos& qos,
427 uint8_t ident);
428
429 RTPS_DllAPI static XMLP_ret getXMLPublishModeQos(
430 tinyxml2::XMLElement* elem,
431 PublishModeQosPolicy& publishMode,
432 uint8_t ident);
433
434 RTPS_DllAPI static XMLP_ret getXMLGroupDataQos(
435 tinyxml2::XMLElement* elem,
436 GroupDataQosPolicy& groupData,
437 uint8_t ident);
438
439 RTPS_DllAPI static XMLP_ret getXMLTopicDataQos(
440 tinyxml2::XMLElement* elem,
441 TopicDataQosPolicy& topicData,
442 uint8_t ident);
443
444 RTPS_DllAPI static XMLP_ret getXMLPartitionQos(
445 tinyxml2::XMLElement* elem,
446 PartitionQosPolicy& partition,
447 uint8_t ident);
448
449 RTPS_DllAPI static XMLP_ret getXMLPresentationQos(
450 tinyxml2::XMLElement* elem,
451 PresentationQosPolicy& presentation,
452 uint8_t ident);
453
455 tinyxml2::XMLElement* elem,
456 DestinationOrderQosPolicy& destinationOrder,
457 uint8_t ident);
458
460 tinyxml2::XMLElement* elem,
461 OwnershipStrengthQosPolicy& ownershipStrength,
462 uint8_t ident);
463
464 RTPS_DllAPI static XMLP_ret getXMLOwnershipQos(
465 tinyxml2::XMLElement* elem,
466 OwnershipQosPolicy& ownership,
467 uint8_t ident);
468
470 tinyxml2::XMLElement* elem,
471 TimeBasedFilterQosPolicy& timeBasedFilter,
472 uint8_t ident);
473
474 RTPS_DllAPI static XMLP_ret getXMLUserDataQos(
475 tinyxml2::XMLElement* elem,
476 UserDataQosPolicy& userData,
477 uint8_t ident);
478
479 RTPS_DllAPI static XMLP_ret getXMLLifespanQos(
480 tinyxml2::XMLElement* elem,
481 LifespanQosPolicy& lifespan,
482 uint8_t ident);
483
484 RTPS_DllAPI static XMLP_ret getXMLReliabilityQos(
485 tinyxml2::XMLElement* elem,
486 ReliabilityQosPolicy& reliability,
487 uint8_t ident);
488
489 RTPS_DllAPI static XMLP_ret getXMLLivelinessQos(
490 tinyxml2::XMLElement* elem,
491 LivelinessQosPolicy& liveliness,
492 uint8_t ident);
493
495 tinyxml2::XMLElement* elem,
496 LatencyBudgetQosPolicy& latencyBudget,
497 uint8_t ident);
498
499 RTPS_DllAPI static XMLP_ret getXMLDeadlineQos(
500 tinyxml2::XMLElement* elem,
501 DeadlineQosPolicy& deadline,
502 uint8_t ident);
503
505 tinyxml2::XMLElement* elem,
506 DurabilityServiceQosPolicy& durabilityService,
507 uint8_t ident);
508
509 RTPS_DllAPI static XMLP_ret getXMLDurabilityQos(
510 tinyxml2::XMLElement* elem,
511 DurabilityQosPolicy& durability,
512 uint8_t ident);
513
514 RTPS_DllAPI static XMLP_ret getXMLTopicAttributes(
515 tinyxml2::XMLElement* elem,
516 TopicAttributes& topic,
517 uint8_t ident);
518
520 tinyxml2::XMLElement* elem,
521 HistoryQosPolicy& historyQos,
522 uint8_t ident);
523
525 tinyxml2::XMLElement* elem,
526 ResourceLimitsQosPolicy& resourceLimitsQos,
527 uint8_t ident);
528
530 tinyxml2::XMLElement* elem,
531 ResourceLimitedContainerConfig& resourceLimitsQos,
532 uint8_t ident);
533
535 tinyxml2::XMLElement* elem,
536 rtps::ThroughputControllerDescriptor& throughputController,
537 uint8_t ident);
538
539 RTPS_DllAPI static XMLP_ret getXMLPortParameters(
540 tinyxml2::XMLElement* elem,
541 rtps::PortParameters& port,
542 uint8_t ident);
543
545 tinyxml2::XMLElement* elem,
546 rtps::RTPSParticipantAllocationAttributes& allocation,
547 uint8_t ident);
548
550 tinyxml2::XMLElement* elem,
551 rtps::RemoteLocatorsAllocationAttributes& allocation,
552 uint8_t ident);
553
555 tinyxml2::XMLElement* elem,
556 rtps::SendBuffersAllocationAttributes& allocation,
557 uint8_t ident);
558
560 tinyxml2::XMLElement* elem,
561 rtps::DiscoverySettings& settings,
562 uint8_t ident);
563
565 tinyxml2::XMLElement* elem,
566 rtps::TypeLookupSettings& settings,
567 uint8_t ident);
568
570 tinyxml2::XMLElement* elem,
571 rtps::InitialAnnouncementConfig& config,
572 uint8_t ident);
573
575 tinyxml2::XMLElement* elem,
576 rtps::BuiltinAttributes& builtin,
577 uint8_t ident);
578
579 RTPS_DllAPI static XMLP_ret getXMLOctetVector(
580 tinyxml2::XMLElement* elem,
581 std::vector<rtps::octet>& octet_vector,
582 uint8_t ident);
583
584 RTPS_DllAPI static XMLP_ret getXMLInt(
585 tinyxml2::XMLElement* elem,
586 int* i,
587 uint8_t ident);
588
589 RTPS_DllAPI static XMLP_ret getXMLUint(
590 tinyxml2::XMLElement* elem,
591 unsigned int* ui,
592 uint8_t ident);
593
594 RTPS_DllAPI static XMLP_ret getXMLUint(
595 tinyxml2::XMLElement* elem,
596 uint16_t* ui16,
597 uint8_t ident);
598
599 RTPS_DllAPI static XMLP_ret getXMLUint(
600 tinyxml2::XMLElement* elem,
601 uint64_t* ui64,
602 uint8_t ident);
603
604 RTPS_DllAPI static XMLP_ret getXMLBool(
605 tinyxml2::XMLElement* elem,
606 bool* b,
607 uint8_t ident);
608
609 RTPS_DllAPI static XMLP_ret getXMLEnum(
610 tinyxml2::XMLElement* elem,
611 rtps::DiscoveryProtocol_t* e,
612 uint8_t ident);
613
614 RTPS_DllAPI static XMLP_ret getXMLList(
615 tinyxml2::XMLElement* elem,
616 eprosima::fastdds::rtps::RemoteServerList_t& list,
617 uint8_t ident);
618
619 RTPS_DllAPI static XMLP_ret getXMLEnum(
620 tinyxml2::XMLElement* elem,
621 rtps::ParticipantFilteringFlags_t* e,
622 uint8_t ident);
623
624 RTPS_DllAPI static XMLP_ret getXMLRemoteServer(
625 tinyxml2::XMLElement* elem,
626 eprosima::fastdds::rtps::RemoteServerAttributes& server,
627 uint8_t ident);
628
629 RTPS_DllAPI static XMLP_ret getXMLString(
630 tinyxml2::XMLElement* elem,
631 std::string* s,
632 uint8_t ident);
633
634 RTPS_DllAPI static XMLP_ret getXMLTransports(
635 tinyxml2::XMLElement* elem,
636 std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>>& transports,
637 uint8_t ident);
638
640 tinyxml2::XMLElement* elem,
641 DisablePositiveACKsQosPolicy& disablePositiveAcks,
642 uint8_t ident);
643
644 RTPS_DllAPI static XMLP_ret getXMLDataSharingQos(
645 tinyxml2::XMLElement* elem,
646 DataSharingQosPolicy& data_sharing,
647 uint8_t ident);
648
649 RTPS_DllAPI static XMLP_ret getXMLguidPrefix(
650 tinyxml2::XMLElement* elem,
651 rtps::GuidPrefix_t& prefix,
652 uint8_t ident);
653
655 tinyxml2::XMLElement& elem,
656 fastdds::dds::DomainParticipantFactoryQos& qos);
657
659 tinyxml2::XMLElement* elem,
660 PublisherAttributes& publisher,
661 uint8_t ident);
662
664 tinyxml2::XMLElement* elem,
665 SubscriberAttributes& subscriber,
666 uint8_t ident);
667
668 RTPS_DllAPI static XMLP_ret getXMLThreadSettings(
669 tinyxml2::XMLElement& elem,
670 fastdds::rtps::ThreadSettings& thread_setting);
671
672 /*
673 Return XMLP_ret::XML_OK when OK, XMLP_ret::XML_NOK when port attribute is not present, and
674 XMLP_ret::XML_ERROR if error
675 */
677 tinyxml2::XMLElement& elem,
678 fastdds::rtps::ThreadSettings& thread_setting,
679 uint32_t& port);
680
682 tinyxml2::XMLElement& elem,
683 fastdds::dds::EntityFactoryQosPolicy& entity_factory);
684
686 tinyxml2::XMLElement* elem,
687 eprosima::fastdds::rtps::BuiltinTransports* bt,
688 eprosima::fastdds::rtps::BuiltinTransportsOptions* bt_opts,
689 uint8_t ident);
690};
691
692} // namespace xmlparser
693} // namespace fastrtps
694} // namespace eprosima
695
696#endif // ifndef XML_PARSER_H_
Class PublisherAttributes, used by the user to define the attributes of a Publisher.
Definition PublisherAttributes.h:41
Class SubscriberAttributes, used by the user to define the attributes of a Subscriber.
Definition SubscriberAttributes.h:39
Class TopicAttributes, used by the user to define the attributes of the topic associated with a Publi...
Definition TopicAttributes.h:36
Definition DynamicTypeBuilder.h:32
Class XMLParser, used to load XML data.
Definition XMLParser.h:102
static RTPS_DllAPI XMLP_ret getXMLSendBuffersAllocationAttributes(tinyxml2::XMLElement *elem, rtps::SendBuffersAllocationAttributes &allocation, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLSubscriberProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret loadXML(const char *data, size_t length, up_base_node_t &root)
Load a XML data from buffer.
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *node, DataNode< TopicAttributes > &topic_node)
static RTPS_DllAPI XMLP_ret loadXML(tinyxml2::XMLDocument &xmlDoc, up_base_node_t &root)
Load a XML node.
static RTPS_DllAPI XMLP_ret getXMLPortParameters(tinyxml2::XMLElement *elem, rtps::PortParameters &port, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLWriterTimes(tinyxml2::XMLElement *elem, rtps::WriterTimes &times, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLCommonTCPTransportData(tinyxml2::XMLElement *p_root, sp_transport_t p_transport)
static RTPS_DllAPI XMLP_ret getXMLEnum(tinyxml2::XMLElement *elem, rtps::ParticipantFilteringFlags_t *e, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLBool(tinyxml2::XMLElement *elem, bool *b, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLPublisherProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret getXMLPresentationQos(tinyxml2::XMLElement *elem, PresentationQosPolicy &presentation, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseLogConfig(tinyxml2::XMLElement *p_root)
Load a XML log node and parses it.
static RTPS_DllAPI XMLP_ret getXMLDomainParticipantFactoryQos(tinyxml2::XMLElement &elem, fastdds::dds::DomainParticipantFactoryQos &qos)
static RTPS_DllAPI XMLP_ret parseXMLTransportsProf(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLInitialAnnouncementsConfig(tinyxml2::XMLElement *elem, rtps::InitialAnnouncementConfig &config, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLDurabilityQos(tinyxml2::XMLElement *elem, DurabilityQosPolicy &durability, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLDiscoverySettings(tinyxml2::XMLElement *elem, rtps::DiscoverySettings &settings, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLLocatorList(tinyxml2::XMLElement *elem, rtps::LocatorList_t &locatorList, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLBitsetDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLGroupDataQos(tinyxml2::XMLElement *elem, GroupDataQosPolicy &groupData, uint8_t ident)
static XMLP_ret getXMLExternalLocatorList(tinyxml2::XMLElement *elem, fastdds::rtps::ExternalLocators &external_locators, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLInt(tinyxml2::XMLElement *elem, int *i, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLDeadlineQos(tinyxml2::XMLElement *elem, DeadlineQosPolicy &deadline, uint8_t ident)
static RTPS_DllAPI p_dynamictypebuilder_t parseXMLMemberDynamicType(tinyxml2::XMLElement *p_root, p_dynamictypebuilder_t p_dynamictype, types::MemberId mId)
static RTPS_DllAPI XMLP_ret parseXMLProfiles(tinyxml2::XMLElement &profiles, up_base_node_t &root)
static RTPS_DllAPI XMLP_ret parseXMLUnionDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret validateXMLTransportElements(tinyxml2::XMLElement &p_root)
static RTPS_DllAPI XMLP_ret getXMLUint(tinyxml2::XMLElement *elem, uint64_t *ui64, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLReceptionThreads(tinyxml2::XMLElement &p_root, fastdds::rtps::PortBasedTransportDescriptor::ReceptionThreadsConfigMap &reception_threads)
static RTPS_DllAPI XMLP_ret parseXMLReplierProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret parseXMLParticipantProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret getXMLOctetVector(tinyxml2::XMLElement *elem, std::vector< rtps::octet > &octet_vector, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLEnum(tinyxml2::XMLElement *elem, rtps::DiscoveryProtocol_t *e, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLRemoteLocatorsAllocationAttributes(tinyxml2::XMLElement *elem, rtps::RemoteLocatorsAllocationAttributes &allocation, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLContainerAllocationConfig(tinyxml2::XMLElement *elem, ResourceLimitedContainerConfig &resourceLimitsQos, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLPortBasedTransportData(tinyxml2::XMLElement *p_root, std::shared_ptr< fastdds::rtps::PortBasedTransportDescriptor > p_transport)
static RTPS_DllAPI XMLP_ret parseXMLBitvalueDynamicType(tinyxml2::XMLElement *p_root, p_dynamictypebuilder_t p_dynamictype, uint16_t &position)
static RTPS_DllAPI XMLP_ret getXMLLocatorTCPv6(tinyxml2::XMLElement *elem, rtps::Locator_t &locator, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLEnum(tinyxml2::XMLElement *elem, fastrtps::IntraprocessDeliveryType *e, uint8_t ident)
static RTPS_DllAPI XMLP_ret loadDefaultXMLFile(up_base_node_t &root)
Load the default XML file.
static RTPS_DllAPI XMLP_ret getXMLTopicDataQos(tinyxml2::XMLElement *elem, TopicDataQosPolicy &topicData, uint8_t ident)
static RTPS_DllAPI XMLP_ret loadXMLDynamicTypes(tinyxml2::XMLElement &types)
Load a XML node.
static RTPS_DllAPI XMLP_ret getXMLTransports(tinyxml2::XMLElement *elem, std::vector< std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > > &transports, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLBlocklist(tinyxml2::XMLElement *p_root, std::shared_ptr< fastdds::rtps::SocketTransportDescriptor > p_transport)
static RTPS_DllAPI XMLP_ret getXMLPartitionQos(tinyxml2::XMLElement *elem, PartitionQosPolicy &partition, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLTypes(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLThreadSettingsWithPort(tinyxml2::XMLElement &elem, fastdds::rtps::ThreadSettings &thread_setting, uint32_t &port)
static RTPS_DllAPI XMLP_ret getXMLLocatorTCPv4(tinyxml2::XMLElement *elem, rtps::Locator_t &locator, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLLocatorUDPv4(tinyxml2::XMLElement *elem, rtps::Locator_t &locator, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLDuration(tinyxml2::XMLElement *elem, Duration_t &duration, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLThroughputController(tinyxml2::XMLElement *elem, rtps::ThroughputControllerDescriptor &throughputController, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLAllowlist(tinyxml2::XMLElement *p_root, std::shared_ptr< fastdds::rtps::SocketTransportDescriptor > p_transport)
static RTPS_DllAPI XMLP_ret getXMLLocatorUDPv6(tinyxml2::XMLElement *elem, rtps::Locator_t &locator, uint8_t ident)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *p_profile, DataNode< PublisherAttributes > &publisher_node)
static RTPS_DllAPI XMLP_ret parse_tls_config(tinyxml2::XMLElement *p_root, sp_transport_t tcp_transport)
static RTPS_DllAPI XMLP_ret getXMLUserDataQos(tinyxml2::XMLElement *elem, UserDataQosPolicy &userData, uint8_t ident)
static RTPS_DllAPI void addAllAttributes(tinyxml2::XMLElement *p_profile, DataNode< T > &node)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *node, DataNode< RequesterAttributes > &requester_node)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *p_profile, DataNode< SubscriberAttributes > &subscriber_node)
static RTPS_DllAPI XMLP_ret parseXMLEnumDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLDurabilityServiceQos(tinyxml2::XMLElement *elem, DurabilityServiceQosPolicy &durabilityService, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLSubscriberAttributes(tinyxml2::XMLElement *elem, SubscriberAttributes &subscriber, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLPublishModeQos(tinyxml2::XMLElement *elem, PublishModeQosPolicy &publishMode, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLStructDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLTopicAttributes(tinyxml2::XMLElement *elem, TopicAttributes &topic, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLCommonTransportData(tinyxml2::XMLElement *p_root, sp_transport_t p_transport)
static RTPS_DllAPI XMLP_ret getXMLTypeLookupSettings(tinyxml2::XMLElement *elem, rtps::TypeLookupSettings &settings, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLDisablePositiveAcksQos(tinyxml2::XMLElement *elem, DisablePositiveACKsQosPolicy &disablePositiveAcks, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseProfiles(tinyxml2::XMLElement *p_root, BaseNode &profilesNode)
static RTPS_DllAPI XMLP_ret parseXMLTransportData(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLBuiltinAttributes(tinyxml2::XMLElement *elem, rtps::BuiltinAttributes &builtin, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLEntityFactoryQos(tinyxml2::XMLElement &elem, fastdds::dds::EntityFactoryQosPolicy &entity_factory)
static RTPS_DllAPI XMLP_ret getXMLLifespanQos(tinyxml2::XMLElement *elem, LifespanQosPolicy &lifespan, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLDomainParticipantFactoryProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret getXMLBuiltinTransports(tinyxml2::XMLElement *elem, eprosima::fastdds::rtps::BuiltinTransports *bt, eprosima::fastdds::rtps::BuiltinTransportsOptions *bt_opts, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLUint(tinyxml2::XMLElement *elem, uint16_t *ui16, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXML(tinyxml2::XMLDocument &xmlDoc, up_base_node_t &root)
static RTPS_DllAPI XMLP_ret parseXMLDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLLivelinessQos(tinyxml2::XMLElement *elem, LivelinessQosPolicy &liveliness, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLHistoryMemoryPolicy(tinyxml2::XMLElement *elem, rtps::MemoryManagementPolicy_t &historyMemoryPolicy, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLWriterQosPolicies(tinyxml2::XMLElement *elem, WriterQos &qos, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLPublisherAttributes(tinyxml2::XMLElement *elem, PublisherAttributes &publisher, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLPropertiesPolicy(tinyxml2::XMLElement *elem, rtps::PropertyPolicy &propertiesPolicy, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLHistoryQosPolicy(tinyxml2::XMLElement *elem, HistoryQosPolicy &historyQos, uint8_t ident)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *node, DataNode< ReplierAttributes > &replier_node)
static RTPS_DllAPI XMLP_ret getXMLDestinationOrderQos(tinyxml2::XMLElement *elem, DestinationOrderQosPolicy &destinationOrder, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLAliasDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLDataSharingQos(tinyxml2::XMLElement *elem, DataSharingQosPolicy &data_sharing, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLString(tinyxml2::XMLElement *elem, std::string *s, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLOwnershipQos(tinyxml2::XMLElement *elem, OwnershipQosPolicy &ownership, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLRequesterProf(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret getXMLTimeBasedFilterQos(tinyxml2::XMLElement *elem, TimeBasedFilterQosPolicy &timeBasedFilter, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLReaderQosPolicies(tinyxml2::XMLElement *elem, ReaderQos &qos, uint8_t ident)
static RTPS_DllAPI p_dynamictypebuilder_t parseXMLBitfieldDynamicType(tinyxml2::XMLElement *p_root, p_dynamictypebuilder_t p_dynamictype, types::MemberId mId, uint16_t &position)
static RTPS_DllAPI XMLP_ret getXMLReliabilityQos(tinyxml2::XMLElement *elem, ReliabilityQosPolicy &reliability, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLLatencyBudgetQos(tinyxml2::XMLElement *elem, LatencyBudgetQosPolicy &latencyBudget, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLList(tinyxml2::XMLElement *elem, eprosima::fastdds::rtps::RemoteServerList_t &list, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLResourceLimitsQos(tinyxml2::XMLElement *elem, ResourceLimitsQosPolicy &resourceLimitsQos, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLBitmaskDynamicType(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret parseXMLSocketTransportData(tinyxml2::XMLElement *p_root, std::shared_ptr< fastdds::rtps::SocketTransportDescriptor > p_transport)
static RTPS_DllAPI XMLP_ret parseXMLTopicData(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
static RTPS_DllAPI XMLP_ret parseXMLInterfaces(tinyxml2::XMLElement *p_root, std::shared_ptr< fastdds::rtps::SocketTransportDescriptor > p_transport)
static RTPS_DllAPI XMLP_ret getXMLThreadSettings(tinyxml2::XMLElement &elem, fastdds::rtps::ThreadSettings &thread_setting)
static RTPS_DllAPI XMLP_ret parseDynamicTypes(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret getXMLReaderTimes(tinyxml2::XMLElement *elem, rtps::ReaderTimes &times, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLguidPrefix(tinyxml2::XMLElement *elem, rtps::GuidPrefix_t &prefix, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLConsumer(tinyxml2::XMLElement &consumer)
Load a XML consumer node and parses it.
static RTPS_DllAPI p_dynamictypebuilder_t parseXMLMemberDynamicType(tinyxml2::XMLElement *p_root, p_dynamictypebuilder_t p_dynamictype, types::MemberId mId, const std::string &values)
static RTPS_DllAPI XMLP_ret getXMLParticipantAllocationAttributes(tinyxml2::XMLElement *elem, rtps::RTPSParticipantAllocationAttributes &allocation, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLLibrarySettings(tinyxml2::XMLElement *p_root)
static RTPS_DllAPI XMLP_ret parseXMLDynamicTypes(tinyxml2::XMLElement &types)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *p_profile, DataNode< ParticipantAttributes > &participant_node)
static RTPS_DllAPI XMLP_ret getXMLOwnershipStrengthQos(tinyxml2::XMLElement *elem, OwnershipStrengthQosPolicy &ownershipStrength, uint8_t ident)
static RTPS_DllAPI XMLP_ret getXMLUint(tinyxml2::XMLElement *elem, unsigned int *ui, uint8_t ident)
static RTPS_DllAPI XMLP_ret fillDataNode(tinyxml2::XMLElement *p_profile, DataNode< fastdds::dds::DomainParticipantFactoryQos > &factory_node)
static RTPS_DllAPI XMLP_ret loadXML(const std::string &filename, up_base_node_t &root)
Load a XML file.
static RTPS_DllAPI XMLP_ret parseXMLCommonSharedMemTransportData(tinyxml2::XMLElement *p_root, sp_transport_t p_transport)
static RTPS_DllAPI XMLP_ret loadXMLProfiles(tinyxml2::XMLElement &profiles, up_base_node_t &root)
Load a XML node.
static RTPS_DllAPI XMLP_ret getXMLRemoteServer(tinyxml2::XMLElement *elem, eprosima::fastdds::rtps::RemoteServerAttributes &server, uint8_t ident)
XMLP_ret
Enum class XMLP_ret, used to provide a strongly typed result from the operations within this module.
Definition XMLParserCommon.h:27
uint32_t MemberId
Definition TypesBase.h:285
std::unique_ptr< node_publisher_t > up_node_publisher_t
Definition XMLParser.h:75
std::unique_ptr< node_subscriber_t > up_node_subscriber_t
Definition XMLParser.h:80
std::map< std::string, std::string > node_att_map_t
Definition XMLParser.h:53
DataNode< ReplierAttributes > node_replier_t
Definition XMLParser.h:93
DataNode< SubscriberAttributes > node_subscriber_t
Definition XMLParser.h:78
std::unique_ptr< ReplierAttributes > up_replier_t
Definition XMLParser.h:92
std::unique_ptr< SubscriberAttributes > up_subscriber_t
Definition XMLParser.h:77
node_publisher_t * p_node_publisher_t
Definition XMLParser.h:74
DataNode< TopicAttributes > node_topic_t
Definition XMLParser.h:83
std::map< std::string, sp_transport_t > sp_transport_map_t
Definition XMLParser.h:58
node_subscriber_t * p_node_subscriber_t
Definition XMLParser.h:79
std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > sp_transport_t
Definition XMLParser.h:57
types::DynamicTypeBuilder * p_dynamictypebuilder_t
Definition XMLParser.h:59
std::unique_ptr< node_participantfactory_t > up_node_participantfactory_t
Definition XMLParser.h:65
std::unique_ptr< node_topic_t > up_node_topic_t
Definition XMLParser.h:85
DataNode< PublisherAttributes > node_publisher_t
Definition XMLParser.h:73
node_replier_t * p_node_replier_t
Definition XMLParser.h:94
std::unique_ptr< ParticipantAttributes > up_participant_t
Definition XMLParser.h:67
node_att_map_t::const_iterator node_att_map_cit_t
Definition XMLParser.h:55
std::unique_ptr< TopicAttributes > up_topic_t
Definition XMLParser.h:82
DataNode< RequesterAttributes > node_requester_t
Definition XMLParser.h:88
DataNode< ParticipantAttributes > node_participant_t
Definition XMLParser.h:68
std::map< std::string, p_dynamictypebuilder_t > p_dynamictype_map_t
Definition XMLParser.h:60
std::unique_ptr< node_requester_t > up_node_requester_t
Definition XMLParser.h:90
node_att_map_t::iterator node_att_map_it_t
Definition XMLParser.h:54
std::unique_ptr< RequesterAttributes > up_requester_t
Definition XMLParser.h:87
std::unique_ptr< BaseNode > up_base_node_t
Definition XMLParser.h:51
std::unique_ptr< node_participant_t > up_node_participant_t
Definition XMLParser.h:70
node_participantfactory_t * p_node_participantfactory_t
Definition XMLParser.h:64
std::unique_ptr< fastdds::dds::DomainParticipantFactoryQos > up_participantfactory_t
Definition XMLParser.h:62
node_topic_t * p_node_topic_t
Definition XMLParser.h:84
std::vector< up_base_node_t > up_base_node_vector_t
Definition XMLParser.h:52
node_participant_t * p_node_participant_t
Definition XMLParser.h:69
node_requester_t * p_node_requester_t
Definition XMLParser.h:89
DataNode< fastdds::dds::DomainParticipantFactoryQos > node_participantfactory_t
Definition XMLParser.h:63
std::unique_ptr< PublisherAttributes > up_publisher_t
Definition XMLParser.h:72
std::unique_ptr< node_replier_t > up_node_replier_t
Definition XMLParser.h:95
fastdds::dds::DataSharingQosPolicy DataSharingQosPolicy
Definition QosPolicies.h:97
IntraprocessDeliveryType
Definition LibrarySettingsAttributes.h:27
fastdds::dds::PresentationQosPolicy PresentationQosPolicy
Definition QosPolicies.h:72
fastdds::dds::LatencyBudgetQosPolicy LatencyBudgetQosPolicy
Definition QosPolicies.h:42
fastdds::dds::UserDataQosPolicy UserDataQosPolicy
Definition QosPolicies.h:74
fastdds::dds::LifespanQosPolicy LifespanQosPolicy
Definition QosPolicies.h:83
fastdds::dds::ReaderQos ReaderQos
Definition ReaderQos.h:30
fastdds::dds::DisablePositiveACKsQosPolicy DisablePositiveACKsQosPolicy
Definition QosPolicies.h:96
fastdds::dds::DurabilityServiceQosPolicy DurabilityServiceQosPolicy
Definition QosPolicies.h:82
fastdds::dds::OwnershipQosPolicy OwnershipQosPolicy
Definition QosPolicies.h:57
fastdds::dds::PublishModeQosPolicy PublishModeQosPolicy
Definition QosPolicies.h:89
fastdds::dds::LivelinessQosPolicy LivelinessQosPolicy
Definition QosPolicies.h:49
fastdds::dds::OwnershipStrengthQosPolicy OwnershipStrengthQosPolicy
Definition QosPolicies.h:84
fastdds::dds::TopicDataQosPolicy TopicDataQosPolicy
Definition QosPolicies.h:75
fastdds::dds::GroupDataQosPolicy GroupDataQosPolicy
Definition QosPolicies.h:76
fastdds::dds::TimeBasedFilterQosPolicy TimeBasedFilterQosPolicy
Definition QosPolicies.h:64
fastdds::dds::DeadlineQosPolicy DeadlineQosPolicy
Definition QosPolicies.h:41
fastdds::dds::WriterQos WriterQos
Definition WriterQos.h:30
fastdds::dds::DestinationOrderQosPolicy DestinationOrderQosPolicy
Definition QosPolicies.h:63
fastdds::dds::PartitionQosPolicy PartitionQosPolicy
Definition QosPolicies.h:73
fastdds::dds::ResourceLimitsQosPolicy ResourceLimitsQosPolicy
Definition QosPolicies.h:81
fastdds::dds::DurabilityQosPolicy DurabilityQosPolicy
Definition QosPolicies.h:40
fastdds::dds::ReliabilityQosPolicy ReliabilityQosPolicy
Definition QosPolicies.h:53
fastdds::dds::HistoryQosPolicy HistoryQosPolicy
Definition QosPolicies.h:80
eProsima namespace.
Definition LibrarySettingsAttributes.h:23
Definition XMLEndpointParser.h:36
Specifies the configuration of a resource limited collection.
Definition ResourceLimitedContainerConfig.hpp:36