Fast RTPS  Version 2.11.2
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 <stdio.h>
19#include <fastrtps/transport/TransportDescriptorInterface.h>
20#include <fastrtps/attributes/ParticipantAttributes.h>
21#include <fastrtps/attributes/PublisherAttributes.h>
22#include <fastrtps/attributes/SubscriberAttributes.h>
23#include <fastrtps/attributes/RequesterAttributes.hpp>
24#include <fastrtps/attributes/ReplierAttributes.hpp>
25#include <fastrtps/xmlparser/XMLParserCommon.h>
26#include <fastrtps/types/DynamicTypeBuilderPtr.h>
27#include <fastrtps/attributes/LibrarySettingsAttributes.h>
28
29#include <map>
30#include <string>
31
32namespace tinyxml2 {
33class XMLElement;
34class XMLDocument;
35} // namespace tinyxml2
36
37namespace eprosima {
38namespace fastrtps {
39namespace xmlparser {
40
41class BaseNode;
42template <class T> class DataNode;
43
44typedef std::unique_ptr<BaseNode> up_base_node_t;
45typedef std::vector<up_base_node_t> up_base_node_vector_t;
46typedef std::map<std::string, std::string> node_att_map_t;
47typedef node_att_map_t::iterator node_att_map_it_t;
48typedef node_att_map_t::const_iterator node_att_map_cit_t;
49
50typedef std::shared_ptr<fastdds::rtps::TransportDescriptorInterface> sp_transport_t;
51typedef std::map<std::string, sp_transport_t> sp_transport_map_t;
53typedef std::map<std::string, p_dynamictypebuilder_t> p_dynamictype_map_t;
54
55typedef std::unique_ptr<ParticipantAttributes> up_participant_t;
58typedef std::unique_ptr<node_participant_t> up_node_participant_t;
59
60typedef std::unique_ptr<PublisherAttributes> up_publisher_t;
63typedef std::unique_ptr<node_publisher_t> up_node_publisher_t;
64
65typedef std::unique_ptr<SubscriberAttributes> up_subscriber_t;
68typedef std::unique_ptr<node_subscriber_t> up_node_subscriber_t;
69
70typedef std::unique_ptr<TopicAttributes> up_topic_t;
73typedef std::unique_ptr<node_topic_t> up_node_topic_t;
74
75typedef std::unique_ptr<RequesterAttributes> up_requester_t;
78typedef std::unique_ptr<node_requester_t> up_node_requester_t;
79
80typedef std::unique_ptr<ReplierAttributes> up_replier_t;
83typedef std::unique_ptr<node_replier_t> up_node_replier_t;
84
90{
91
92public:
93
98 RTPS_DllAPI static XMLP_ret loadDefaultXMLFile(
99 up_base_node_t& root);
100
107 RTPS_DllAPI static XMLP_ret loadXML(
108 const std::string& filename,
109 up_base_node_t& root);
110
118 RTPS_DllAPI static XMLP_ret loadXML(
119 const char* data,
120 size_t length,
121 up_base_node_t& root);
122
129 RTPS_DllAPI static XMLP_ret loadXML(
130 tinyxml2::XMLDocument& xmlDoc,
131 up_base_node_t& root);
132
139 RTPS_DllAPI static XMLP_ret loadXMLProfiles(
140 tinyxml2::XMLElement& profiles,
141 up_base_node_t& root);
142
148 RTPS_DllAPI static XMLP_ret loadXMLDynamicTypes(
149 tinyxml2::XMLElement& types);
150
151protected:
152
153 RTPS_DllAPI static XMLP_ret parseXML(
154 tinyxml2::XMLDocument& xmlDoc,
155 up_base_node_t& root);
156
157 RTPS_DllAPI static XMLP_ret parseXMLProfiles(
158 tinyxml2::XMLElement& profiles,
159 up_base_node_t& root);
160
161 RTPS_DllAPI static XMLP_ret parseProfiles(
162 tinyxml2::XMLElement* p_root,
163 BaseNode& profilesNode);
164
165
171 RTPS_DllAPI static XMLP_ret parseLogConfig(
172 tinyxml2::XMLElement* p_root);
173
175 tinyxml2::XMLElement* p_root);
176
178 tinyxml2::XMLElement* p_root);
179
181 tinyxml2::XMLElement* p_root,
182 BaseNode& rootNode);
183
184 RTPS_DllAPI static XMLP_ret parseXMLPublisherProf(
185 tinyxml2::XMLElement* p_root,
186 BaseNode& rootNode);
187
189 tinyxml2::XMLElement* p_root,
190 BaseNode& rootNode);
191
192 RTPS_DllAPI static XMLP_ret parseXMLTopicData(
193 tinyxml2::XMLElement* p_root,
194 BaseNode& rootNode);
195
196 RTPS_DllAPI static XMLP_ret parseXMLRequesterProf(
197 tinyxml2::XMLElement* p_root,
198 BaseNode& rootNode);
199
200 RTPS_DllAPI static XMLP_ret parseXMLReplierProf(
201 tinyxml2::XMLElement* p_root,
202 BaseNode& rootNode);
203
204 RTPS_DllAPI static XMLP_ret parseXMLTransportData(
205 tinyxml2::XMLElement* p_root);
206
208 tinyxml2::XMLElement* p_root,
209 sp_transport_t p_transport);
210
212 tinyxml2::XMLElement* p_root,
213 sp_transport_t p_transport);
214
216 tinyxml2::XMLElement* p_root,
217 sp_transport_t p_transport);
218
219 RTPS_DllAPI static XMLP_ret parse_tls_config(
220 tinyxml2::XMLElement* p_root,
221 sp_transport_t tcp_transport);
222
228 RTPS_DllAPI static XMLP_ret parseXMLConsumer(
229 tinyxml2::XMLElement& consumer);
230
231 RTPS_DllAPI static XMLP_ret parseXMLDynamicTypes(
232 tinyxml2::XMLElement& types);
233
234 RTPS_DllAPI static XMLP_ret parseDynamicTypes(
235 tinyxml2::XMLElement* p_root);
236
237 RTPS_DllAPI static XMLP_ret parseXMLTypes(
238 tinyxml2::XMLElement* p_root);
239
240 RTPS_DllAPI static XMLP_ret parseXMLDynamicType(
241 tinyxml2::XMLElement* p_root);
242
244 tinyxml2::XMLElement* p_root);
245
247 tinyxml2::XMLElement* p_root);
248
250 tinyxml2::XMLElement* p_root);
251
253 tinyxml2::XMLElement* p_root);
254
256 tinyxml2::XMLElement* p_root);
257
259 tinyxml2::XMLElement* p_root);
260
262 tinyxml2::XMLElement* p_root,
263 p_dynamictypebuilder_t p_dynamictype,
264 types::MemberId mId,
265 uint16_t& position);
266
268 tinyxml2::XMLElement* p_root,
269 p_dynamictypebuilder_t p_dynamictype,
270 uint16_t& position);
271
273 tinyxml2::XMLElement* p_root,
274 p_dynamictypebuilder_t p_dynamictype,
275 types::MemberId mId);
276
278 tinyxml2::XMLElement* p_root,
279 p_dynamictypebuilder_t p_dynamictype,
280 types::MemberId mId,
281 const std::string& values);
282
283 RTPS_DllAPI static XMLP_ret fillDataNode(
284 tinyxml2::XMLElement* p_profile,
285 DataNode<ParticipantAttributes>& participant_node);
286
287 RTPS_DllAPI static XMLP_ret fillDataNode(
288 tinyxml2::XMLElement* p_profile,
289 DataNode<PublisherAttributes>& publisher_node);
290
291 RTPS_DllAPI static XMLP_ret fillDataNode(
292 tinyxml2::XMLElement* p_profile,
293 DataNode<SubscriberAttributes>& subscriber_node);
294
295 RTPS_DllAPI static XMLP_ret fillDataNode(
296 tinyxml2::XMLElement* node,
297 DataNode<TopicAttributes>& topic_node);
298
299 RTPS_DllAPI static XMLP_ret fillDataNode(
300 tinyxml2::XMLElement* node,
301 DataNode<RequesterAttributes>& requester_node);
302
303 RTPS_DllAPI static XMLP_ret fillDataNode(
304 tinyxml2::XMLElement* node,
305 DataNode<ReplierAttributes>& replier_node);
306
307 template <typename T>
308 RTPS_DllAPI static void addAllAttributes(
309 tinyxml2::XMLElement* p_profile,
310 DataNode<T>& node);
311
312 RTPS_DllAPI static XMLP_ret getXMLEnum(
313 tinyxml2::XMLElement* elem,
315 uint8_t ident);
316
318 tinyxml2::XMLElement* elem,
319 rtps::PropertyPolicy& propertiesPolicy,
320 uint8_t ident);
321
323 tinyxml2::XMLElement* elem,
324 rtps::MemoryManagementPolicy_t& historyMemoryPolicy,
325 uint8_t ident);
326
328 tinyxml2::XMLElement* elem,
329 fastdds::rtps::ExternalLocators& external_locators,
330 uint8_t ident);
331
332 RTPS_DllAPI static XMLP_ret getXMLLocatorList(
333 tinyxml2::XMLElement* elem,
334 rtps::LocatorList_t& locatorList,
335 uint8_t ident);
336
337 RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv4(
338 tinyxml2::XMLElement* elem,
339 rtps::Locator_t& locator,
340 uint8_t ident);
341
342 RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv6(
343 tinyxml2::XMLElement* elem,
344 rtps::Locator_t& locator,
345 uint8_t ident);
346
347 RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv4(
348 tinyxml2::XMLElement* elem,
349 rtps::Locator_t& locator,
350 uint8_t ident);
351
352 RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv6(
353 tinyxml2::XMLElement* elem,
354 rtps::Locator_t& locator,
355 uint8_t ident);
356
357 RTPS_DllAPI static XMLP_ret getXMLWriterTimes(
358 tinyxml2::XMLElement* elem,
359 rtps::WriterTimes& times,
360 uint8_t ident);
361
362 RTPS_DllAPI static XMLP_ret getXMLReaderTimes(
363 tinyxml2::XMLElement* elem,
364 rtps::ReaderTimes& times,
365 uint8_t ident);
366
367 RTPS_DllAPI static XMLP_ret getXMLDuration(
368 tinyxml2::XMLElement* elem,
369 Duration_t& duration,
370 uint8_t ident);
371
373 tinyxml2::XMLElement* elem,
374 WriterQos& qos,
375 uint8_t ident);
376
378 tinyxml2::XMLElement* elem,
379 ReaderQos& qos,
380 uint8_t ident);
381
382 RTPS_DllAPI static XMLP_ret getXMLPublishModeQos(
383 tinyxml2::XMLElement* elem,
384 PublishModeQosPolicy& publishMode,
385 uint8_t ident);
386
387 RTPS_DllAPI static XMLP_ret getXMLGroupDataQos(
388 tinyxml2::XMLElement* elem,
389 GroupDataQosPolicy& groupData,
390 uint8_t ident);
391
392 RTPS_DllAPI static XMLP_ret getXMLTopicDataQos(
393 tinyxml2::XMLElement* elem,
394 TopicDataQosPolicy& topicData,
395 uint8_t ident);
396
397 RTPS_DllAPI static XMLP_ret getXMLPartitionQos(
398 tinyxml2::XMLElement* elem,
399 PartitionQosPolicy& partition,
400 uint8_t ident);
401
402 RTPS_DllAPI static XMLP_ret getXMLPresentationQos(
403 tinyxml2::XMLElement* elem,
404 PresentationQosPolicy& presentation,
405 uint8_t ident);
406
408 tinyxml2::XMLElement* elem,
409 DestinationOrderQosPolicy& destinationOrder,
410 uint8_t ident);
411
413 tinyxml2::XMLElement* elem,
414 OwnershipStrengthQosPolicy& ownershipStrength,
415 uint8_t ident);
416
417 RTPS_DllAPI static XMLP_ret getXMLOwnershipQos(
418 tinyxml2::XMLElement* elem,
419 OwnershipQosPolicy& ownership,
420 uint8_t ident);
421
423 tinyxml2::XMLElement* elem,
424 TimeBasedFilterQosPolicy& timeBasedFilter,
425 uint8_t ident);
426
427 RTPS_DllAPI static XMLP_ret getXMLUserDataQos(
428 tinyxml2::XMLElement* elem,
429 UserDataQosPolicy& userData,
430 uint8_t ident);
431
432 RTPS_DllAPI static XMLP_ret getXMLLifespanQos(
433 tinyxml2::XMLElement* elem,
434 LifespanQosPolicy& lifespan,
435 uint8_t ident);
436
437 RTPS_DllAPI static XMLP_ret getXMLReliabilityQos(
438 tinyxml2::XMLElement* elem,
439 ReliabilityQosPolicy& reliability,
440 uint8_t ident);
441
442 RTPS_DllAPI static XMLP_ret getXMLLivelinessQos(
443 tinyxml2::XMLElement* elem,
444 LivelinessQosPolicy& liveliness,
445 uint8_t ident);
446
448 tinyxml2::XMLElement* elem,
449 LatencyBudgetQosPolicy& latencyBudget,
450 uint8_t ident);
451
452 RTPS_DllAPI static XMLP_ret getXMLDeadlineQos(
453 tinyxml2::XMLElement* elem,
454 DeadlineQosPolicy& deadline,
455 uint8_t ident);
456
458 tinyxml2::XMLElement* elem,
459 DurabilityServiceQosPolicy& durabilityService,
460 uint8_t ident);
461
462 RTPS_DllAPI static XMLP_ret getXMLDurabilityQos(
463 tinyxml2::XMLElement* elem,
464 DurabilityQosPolicy& durability,
465 uint8_t ident);
466
467 RTPS_DllAPI static XMLP_ret getXMLTopicAttributes(
468 tinyxml2::XMLElement* elem,
469 TopicAttributes& topic,
470 uint8_t ident);
471
473 tinyxml2::XMLElement* elem,
474 HistoryQosPolicy& historyQos,
475 uint8_t ident);
476
478 tinyxml2::XMLElement* elem,
479 ResourceLimitsQosPolicy& resourceLimitsQos,
480 uint8_t ident);
481
483 tinyxml2::XMLElement* elem,
484 ResourceLimitedContainerConfig& resourceLimitsQos,
485 uint8_t ident);
486
488 tinyxml2::XMLElement* elem,
489 rtps::ThroughputControllerDescriptor& throughputController,
490 uint8_t ident);
491
492 RTPS_DllAPI static XMLP_ret getXMLPortParameters(
493 tinyxml2::XMLElement* elem,
494 rtps::PortParameters& port,
495 uint8_t ident);
496
498 tinyxml2::XMLElement* elem,
499 rtps::RTPSParticipantAllocationAttributes& allocation,
500 uint8_t ident);
501
503 tinyxml2::XMLElement* elem,
504 rtps::RemoteLocatorsAllocationAttributes& allocation,
505 uint8_t ident);
506
508 tinyxml2::XMLElement* elem,
509 rtps::SendBuffersAllocationAttributes& allocation,
510 uint8_t ident);
511
513 tinyxml2::XMLElement* elem,
514 rtps::DiscoverySettings& settings,
515 uint8_t ident);
516
518 tinyxml2::XMLElement* elem,
519 rtps::TypeLookupSettings& settings,
520 uint8_t ident);
521
523 tinyxml2::XMLElement* elem,
524 rtps::InitialAnnouncementConfig& config,
525 uint8_t ident);
526
528 tinyxml2::XMLElement* elem,
529 rtps::BuiltinAttributes& builtin,
530 uint8_t ident);
531
532 RTPS_DllAPI static XMLP_ret getXMLOctetVector(
533 tinyxml2::XMLElement* elem,
534 std::vector<rtps::octet>& octet_vector,
535 uint8_t ident);
536
537 RTPS_DllAPI static XMLP_ret getXMLInt(
538 tinyxml2::XMLElement* elem,
539 int* i,
540 uint8_t ident);
541
542 RTPS_DllAPI static XMLP_ret getXMLUint(
543 tinyxml2::XMLElement* elem,
544 unsigned int* ui,
545 uint8_t ident);
546
547 RTPS_DllAPI static XMLP_ret getXMLUint(
548 tinyxml2::XMLElement* elem,
549 uint16_t* ui16,
550 uint8_t ident);
551
552 RTPS_DllAPI static XMLP_ret getXMLBool(
553 tinyxml2::XMLElement* elem,
554 bool* b,
555 uint8_t ident);
556
557 RTPS_DllAPI static XMLP_ret getXMLEnum(
558 tinyxml2::XMLElement* elem,
559 rtps::DiscoveryProtocol_t* e,
560 uint8_t ident);
561
562 RTPS_DllAPI static XMLP_ret getXMLList(
563 tinyxml2::XMLElement* elem,
564 eprosima::fastdds::rtps::RemoteServerList_t& list,
565 uint8_t ident);
566
567 RTPS_DllAPI static XMLP_ret getXMLEnum(
568 tinyxml2::XMLElement* elem,
569 rtps::ParticipantFilteringFlags_t* e,
570 uint8_t ident);
571
572 RTPS_DllAPI static XMLP_ret getXMLRemoteServer(
573 tinyxml2::XMLElement* elem,
574 eprosima::fastdds::rtps::RemoteServerAttributes& server,
575 uint8_t ident);
576
577 RTPS_DllAPI static XMLP_ret getXMLString(
578 tinyxml2::XMLElement* elem,
579 std::string* s,
580 uint8_t ident);
581
582 RTPS_DllAPI static XMLP_ret getXMLTransports(
583 tinyxml2::XMLElement* elem,
584 std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>>& transports,
585 uint8_t ident);
586
588 tinyxml2::XMLElement* elem,
589 DisablePositiveACKsQosPolicy& disablePositiveAcks,
590 uint8_t ident);
591
592 RTPS_DllAPI static XMLP_ret getXMLDataSharingQos(
593 tinyxml2::XMLElement* elem,
594 DataSharingQosPolicy& data_sharing,
595 uint8_t ident);
596
597 RTPS_DllAPI static XMLP_ret getXMLguidPrefix(
598 tinyxml2::XMLElement* elem,
599 rtps::GuidPrefix_t& prefix,
600 uint8_t ident);
601
603 tinyxml2::XMLElement* elem,
604 PublisherAttributes& publisher,
605 uint8_t ident);
606
608 tinyxml2::XMLElement* elem,
609 SubscriberAttributes& subscriber,
610 uint8_t ident);
611};
612
613} // namespace xmlparser
614} // namespace fastrtps
615} // namespace eprosima
616
617#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:90
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 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 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 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 getXMLPartitionQos(tinyxml2::XMLElement *elem, PartitionQosPolicy &partition, uint8_t ident)
static RTPS_DllAPI XMLP_ret parseXMLTypes(tinyxml2::XMLElement *p_root)
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 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 getXMLLifespanQos(tinyxml2::XMLElement *elem, LifespanQosPolicy &lifespan, 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 parseXMLTopicData(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
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 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)
uint32_t MemberId
Definition TypesBase.h:272
std::unique_ptr< node_publisher_t > up_node_publisher_t
Definition XMLParser.h:63
std::unique_ptr< node_subscriber_t > up_node_subscriber_t
Definition XMLParser.h:68
std::map< std::string, std::string > node_att_map_t
Definition XMLParser.h:46
DataNode< ReplierAttributes > node_replier_t
Definition XMLParser.h:81
DataNode< SubscriberAttributes > node_subscriber_t
Definition XMLParser.h:66
std::unique_ptr< ReplierAttributes > up_replier_t
Definition XMLParser.h:80
std::unique_ptr< SubscriberAttributes > up_subscriber_t
Definition XMLParser.h:65
node_publisher_t * p_node_publisher_t
Definition XMLParser.h:62
DataNode< TopicAttributes > node_topic_t
Definition XMLParser.h:71
std::map< std::string, sp_transport_t > sp_transport_map_t
Definition XMLParser.h:51
node_subscriber_t * p_node_subscriber_t
Definition XMLParser.h:67
std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > sp_transport_t
Definition XMLParser.h:50
types::DynamicTypeBuilder * p_dynamictypebuilder_t
Definition XMLParser.h:52
std::unique_ptr< node_topic_t > up_node_topic_t
Definition XMLParser.h:73
DataNode< PublisherAttributes > node_publisher_t
Definition XMLParser.h:61
node_replier_t * p_node_replier_t
Definition XMLParser.h:82
std::unique_ptr< ParticipantAttributes > up_participant_t
Definition XMLParser.h:55
XMLP_ret
Enum class XMLP_ret, used to provide a strongly typed result from the operations within this module.
Definition XMLParserCommon.h:27
node_att_map_t::const_iterator node_att_map_cit_t
Definition XMLParser.h:48
std::unique_ptr< TopicAttributes > up_topic_t
Definition XMLParser.h:70
DataNode< RequesterAttributes > node_requester_t
Definition XMLParser.h:76
DataNode< ParticipantAttributes > node_participant_t
Definition XMLParser.h:56
std::map< std::string, p_dynamictypebuilder_t > p_dynamictype_map_t
Definition XMLParser.h:53
std::unique_ptr< node_requester_t > up_node_requester_t
Definition XMLParser.h:78
node_att_map_t::iterator node_att_map_it_t
Definition XMLParser.h:47
std::unique_ptr< RequesterAttributes > up_requester_t
Definition XMLParser.h:75
std::unique_ptr< BaseNode > up_base_node_t
Definition XMLParser.h:44
std::unique_ptr< node_participant_t > up_node_participant_t
Definition XMLParser.h:58
node_topic_t * p_node_topic_t
Definition XMLParser.h:72
std::vector< up_base_node_t > up_base_node_vector_t
Definition XMLParser.h:45
node_participant_t * p_node_participant_t
Definition XMLParser.h:57
node_requester_t * p_node_requester_t
Definition XMLParser.h:77
std::unique_ptr< PublisherAttributes > up_publisher_t
Definition XMLParser.h:60
std::unique_ptr< node_replier_t > up_node_replier_t
Definition XMLParser.h:83
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