Fast RTPS  Version 2.6.10
Fast RTPS
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 <mutex>
31 #include <string>
32 
33 namespace tinyxml2 {
34 class XMLElement;
35 class XMLDocument;
36 } // namespace tinyxml2
37 
38 namespace eprosima {
39 namespace fastrtps {
40 namespace xmlparser {
41 
42 class BaseNode;
43 template <class T> class DataNode;
44 
45 typedef std::unique_ptr<BaseNode> up_base_node_t;
46 typedef std::vector<up_base_node_t> up_base_node_vector_t;
47 typedef std::map<std::string, std::string> node_att_map_t;
48 typedef node_att_map_t::iterator node_att_map_it_t;
49 typedef node_att_map_t::const_iterator node_att_map_cit_t;
50 
51 typedef std::shared_ptr<fastdds::rtps::TransportDescriptorInterface> sp_transport_t;
52 typedef std::map<std::string, sp_transport_t> sp_transport_map_t;
54 typedef std::map<std::string, p_dynamictypebuilder_t> p_dynamictype_map_t;
55 
56 typedef std::unique_ptr<ParticipantAttributes> up_participant_t;
59 typedef std::unique_ptr<node_participant_t> up_node_participant_t;
60 
61 typedef std::unique_ptr<PublisherAttributes> up_publisher_t;
64 typedef std::unique_ptr<node_publisher_t> up_node_publisher_t;
65 
66 typedef std::unique_ptr<SubscriberAttributes> up_subscriber_t;
69 typedef std::unique_ptr<node_subscriber_t> up_node_subscriber_t;
70 
71 typedef std::unique_ptr<TopicAttributes> up_topic_t;
74 typedef std::unique_ptr<node_topic_t> up_node_topic_t;
75 
76 typedef std::unique_ptr<RequesterAttributes> up_requester_t;
79 typedef std::unique_ptr<node_requester_t> up_node_requester_t;
80 
81 typedef std::unique_ptr<ReplierAttributes> up_replier_t;
84 typedef std::unique_ptr<node_replier_t> up_node_replier_t;
85 
90 class XMLParser
91 {
92 
93 public:
94 
95  using FlowControllerDescriptorList = std::vector<std::shared_ptr<fastdds::rtps::FlowControllerDescriptor>>;
96 
101  RTPS_DllAPI static XMLP_ret loadDefaultXMLFile(
102  up_base_node_t& root);
103 
110  RTPS_DllAPI static XMLP_ret loadXML(
111  const std::string& filename,
112  up_base_node_t& root);
113 
122  const std::string& filename,
123  up_base_node_t& root,
124  bool is_default);
125 
133  RTPS_DllAPI static XMLP_ret loadXML(
134  const char* data,
135  size_t length,
136  up_base_node_t& root);
137 
144  RTPS_DllAPI static XMLP_ret loadXML(
145  tinyxml2::XMLDocument& xmlDoc,
146  up_base_node_t& root);
147 
154  RTPS_DllAPI static XMLP_ret loadXMLProfiles(
155  tinyxml2::XMLElement& profiles,
156  up_base_node_t& root);
157 
163  RTPS_DllAPI static XMLP_ret loadXMLDynamicTypes(
164  tinyxml2::XMLElement& types);
165 
166 
172  RTPS_DllAPI static XMLP_ret clear();
173 
174 protected:
175 
176  RTPS_DllAPI static XMLP_ret parseXML(
177  tinyxml2::XMLDocument& xmlDoc,
178  up_base_node_t& root);
179 
180  RTPS_DllAPI static XMLP_ret parseXMLProfiles(
181  tinyxml2::XMLElement& profiles,
182  up_base_node_t& root);
183 
184  RTPS_DllAPI static XMLP_ret parseProfiles(
185  tinyxml2::XMLElement* p_root,
186  BaseNode& profilesNode);
187 
188 
194  RTPS_DllAPI static XMLP_ret parseLogConfig(
195  tinyxml2::XMLElement* p_root);
196 
197  RTPS_DllAPI static XMLP_ret parseXMLLibrarySettings(
198  tinyxml2::XMLElement* p_root);
199 
200  RTPS_DllAPI static XMLP_ret parseXMLTransportsProf(
201  tinyxml2::XMLElement* p_root);
202 
203  RTPS_DllAPI static XMLP_ret parseXMLParticipantProf(
204  tinyxml2::XMLElement* p_root,
205  BaseNode& rootNode);
206 
207  RTPS_DllAPI static XMLP_ret parseXMLPublisherProf(
208  tinyxml2::XMLElement* p_root,
209  BaseNode& rootNode);
210 
211  RTPS_DllAPI static XMLP_ret parseXMLSubscriberProf(
212  tinyxml2::XMLElement* p_root,
213  BaseNode& rootNode);
214 
215  RTPS_DllAPI static XMLP_ret parseXMLTopicData(
216  tinyxml2::XMLElement* p_root,
217  BaseNode& rootNode);
218 
219  RTPS_DllAPI static XMLP_ret parseXMLRequesterProf(
220  tinyxml2::XMLElement* p_root,
221  BaseNode& rootNode);
222 
223  RTPS_DllAPI static XMLP_ret parseXMLReplierProf(
224  tinyxml2::XMLElement* p_root,
225  BaseNode& rootNode);
226 
227  RTPS_DllAPI static XMLP_ret parseXMLTransportData(
228  tinyxml2::XMLElement* p_root);
229 
231  tinyxml2::XMLElement* p_root,
232  sp_transport_t p_transport);
233 
235  tinyxml2::XMLElement* p_root,
236  sp_transport_t p_transport);
237 
239  tinyxml2::XMLElement* p_root,
240  sp_transport_t p_transport);
241 
242  RTPS_DllAPI static XMLP_ret parse_tls_config(
243  tinyxml2::XMLElement* p_root,
244  sp_transport_t tcp_transport);
245 
251  RTPS_DllAPI static XMLP_ret parseXMLConsumer(
252  tinyxml2::XMLElement& consumer);
253 
254  RTPS_DllAPI static XMLP_ret parseXMLDynamicTypes(
255  tinyxml2::XMLElement& types);
256 
257  RTPS_DllAPI static XMLP_ret parseDynamicTypes(
258  tinyxml2::XMLElement* p_root);
259 
260  RTPS_DllAPI static XMLP_ret parseXMLTypes(
261  tinyxml2::XMLElement* p_root);
262 
263  RTPS_DllAPI static XMLP_ret parseXMLDynamicType(
264  tinyxml2::XMLElement* p_root);
265 
267  tinyxml2::XMLElement* p_root);
268 
269  RTPS_DllAPI static XMLP_ret parseXMLUnionDynamicType(
270  tinyxml2::XMLElement* p_root);
271 
272  RTPS_DllAPI static XMLP_ret parseXMLEnumDynamicType(
273  tinyxml2::XMLElement* p_root);
274 
275  RTPS_DllAPI static XMLP_ret parseXMLAliasDynamicType(
276  tinyxml2::XMLElement* p_root);
277 
279  tinyxml2::XMLElement* p_root);
280 
282  tinyxml2::XMLElement* p_root);
283 
285  tinyxml2::XMLElement* p_root,
286  p_dynamictypebuilder_t p_dynamictype,
287  types::MemberId mId,
288  uint16_t& position);
289 
291  tinyxml2::XMLElement* p_root,
292  p_dynamictypebuilder_t p_dynamictype,
293  uint16_t& position);
294 
296  tinyxml2::XMLElement* p_root,
297  p_dynamictypebuilder_t p_dynamictype,
298  types::MemberId mId);
299 
301  tinyxml2::XMLElement* p_root,
302  p_dynamictypebuilder_t p_dynamictype,
303  types::MemberId mId,
304  const std::string& values);
305 
306  RTPS_DllAPI static XMLP_ret fillDataNode(
307  tinyxml2::XMLElement* p_profile,
308  DataNode<ParticipantAttributes>& participant_node);
309 
310  RTPS_DllAPI static XMLP_ret fillDataNode(
311  tinyxml2::XMLElement* p_profile,
312  DataNode<PublisherAttributes>& publisher_node);
313 
314  RTPS_DllAPI static XMLP_ret fillDataNode(
315  tinyxml2::XMLElement* p_profile,
316  DataNode<SubscriberAttributes>& subscriber_node);
317 
318  RTPS_DllAPI static XMLP_ret fillDataNode(
319  tinyxml2::XMLElement* node,
320  DataNode<TopicAttributes>& topic_node);
321 
322  RTPS_DllAPI static XMLP_ret fillDataNode(
323  tinyxml2::XMLElement* node,
324  DataNode<RequesterAttributes>& requester_node);
325 
326  RTPS_DllAPI static XMLP_ret fillDataNode(
327  tinyxml2::XMLElement* node,
328  DataNode<ReplierAttributes>& replier_node);
329 
330  template <typename T>
331  RTPS_DllAPI static void addAllAttributes(
332  tinyxml2::XMLElement* p_profile,
333  DataNode<T>& node);
334 
335  RTPS_DllAPI static XMLP_ret getXMLEnum(
336  tinyxml2::XMLElement* elem,
338  uint8_t ident);
339 
340  RTPS_DllAPI static XMLP_ret getXMLPropertiesPolicy(
341  tinyxml2::XMLElement* elem,
342  rtps::PropertyPolicy& propertiesPolicy,
343  uint8_t ident);
344 
346  tinyxml2::XMLElement* elem,
347  rtps::MemoryManagementPolicy_t& historyMemoryPolicy,
348  uint8_t ident);
349 
350  RTPS_DllAPI static XMLP_ret getXMLLocatorList(
351  tinyxml2::XMLElement* elem,
352  rtps::LocatorList_t& locatorList,
353  uint8_t ident);
354 
355  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv4(
356  tinyxml2::XMLElement* elem,
357  rtps::Locator_t& locator,
358  uint8_t ident);
359 
360  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv6(
361  tinyxml2::XMLElement* elem,
362  rtps::Locator_t& locator,
363  uint8_t ident);
364 
365  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv4(
366  tinyxml2::XMLElement* elem,
367  rtps::Locator_t& locator,
368  uint8_t ident);
369 
370  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv6(
371  tinyxml2::XMLElement* elem,
372  rtps::Locator_t& locator,
373  uint8_t ident);
374 
375  RTPS_DllAPI static XMLP_ret getXMLWriterTimes(
376  tinyxml2::XMLElement* elem,
377  rtps::WriterTimes& times,
378  uint8_t ident);
379 
380  RTPS_DllAPI static XMLP_ret getXMLReaderTimes(
381  tinyxml2::XMLElement* elem,
382  rtps::ReaderTimes& times,
383  uint8_t ident);
384 
385  RTPS_DllAPI static XMLP_ret getXMLDuration(
386  tinyxml2::XMLElement* elem,
387  Duration_t& duration,
388  uint8_t ident);
389 
390  RTPS_DllAPI static XMLP_ret getXMLWriterQosPolicies(
391  tinyxml2::XMLElement* elem,
392  WriterQos& qos,
393  uint8_t ident);
394 
395  RTPS_DllAPI static XMLP_ret getXMLReaderQosPolicies(
396  tinyxml2::XMLElement* elem,
397  ReaderQos& qos,
398  uint8_t ident);
399 
400  RTPS_DllAPI static XMLP_ret getXMLPublishModeQos(
401  tinyxml2::XMLElement* elem,
402  PublishModeQosPolicy& publishMode,
403  uint8_t ident);
404 
405  RTPS_DllAPI static XMLP_ret getXMLGroupDataQos(
406  tinyxml2::XMLElement* elem,
407  GroupDataQosPolicy& groupData,
408  uint8_t ident);
409 
410  RTPS_DllAPI static XMLP_ret getXMLTopicDataQos(
411  tinyxml2::XMLElement* elem,
412  TopicDataQosPolicy& topicData,
413  uint8_t ident);
414 
415  RTPS_DllAPI static XMLP_ret getXMLPartitionQos(
416  tinyxml2::XMLElement* elem,
417  PartitionQosPolicy& partition,
418  uint8_t ident);
419 
420  RTPS_DllAPI static XMLP_ret getXMLPresentationQos(
421  tinyxml2::XMLElement* elem,
422  PresentationQosPolicy& presentation,
423  uint8_t ident);
424 
426  tinyxml2::XMLElement* elem,
427  DestinationOrderQosPolicy& destinationOrder,
428  uint8_t ident);
429 
431  tinyxml2::XMLElement* elem,
432  OwnershipStrengthQosPolicy& ownershipStrength,
433  uint8_t ident);
434 
435  RTPS_DllAPI static XMLP_ret getXMLOwnershipQos(
436  tinyxml2::XMLElement* elem,
437  OwnershipQosPolicy& ownership,
438  uint8_t ident);
439 
440  RTPS_DllAPI static XMLP_ret getXMLTimeBasedFilterQos(
441  tinyxml2::XMLElement* elem,
442  TimeBasedFilterQosPolicy& timeBasedFilter,
443  uint8_t ident);
444 
445  RTPS_DllAPI static XMLP_ret getXMLUserDataQos(
446  tinyxml2::XMLElement* elem,
447  UserDataQosPolicy& userData,
448  uint8_t ident);
449 
450  RTPS_DllAPI static XMLP_ret getXMLLifespanQos(
451  tinyxml2::XMLElement* elem,
452  LifespanQosPolicy& lifespan,
453  uint8_t ident);
454 
455  RTPS_DllAPI static XMLP_ret getXMLReliabilityQos(
456  tinyxml2::XMLElement* elem,
457  ReliabilityQosPolicy& reliability,
458  uint8_t ident);
459 
460  RTPS_DllAPI static XMLP_ret getXMLLivelinessQos(
461  tinyxml2::XMLElement* elem,
462  LivelinessQosPolicy& liveliness,
463  uint8_t ident);
464 
465  RTPS_DllAPI static XMLP_ret getXMLLatencyBudgetQos(
466  tinyxml2::XMLElement* elem,
467  LatencyBudgetQosPolicy& latencyBudget,
468  uint8_t ident);
469 
470  RTPS_DllAPI static XMLP_ret getXMLDeadlineQos(
471  tinyxml2::XMLElement* elem,
472  DeadlineQosPolicy& deadline,
473  uint8_t ident);
474 
476  tinyxml2::XMLElement* elem,
477  DurabilityServiceQosPolicy& durabilityService,
478  uint8_t ident);
479 
480  RTPS_DllAPI static XMLP_ret getXMLDurabilityQos(
481  tinyxml2::XMLElement* elem,
482  DurabilityQosPolicy& durability,
483  uint8_t ident);
484 
485  RTPS_DllAPI static XMLP_ret getXMLTopicAttributes(
486  tinyxml2::XMLElement* elem,
487  TopicAttributes& topic,
488  uint8_t ident);
489 
490  RTPS_DllAPI static XMLP_ret getXMLHistoryQosPolicy(
491  tinyxml2::XMLElement* elem,
492  HistoryQosPolicy& historyQos,
493  uint8_t ident);
494 
495  RTPS_DllAPI static XMLP_ret getXMLResourceLimitsQos(
496  tinyxml2::XMLElement* elem,
497  ResourceLimitsQosPolicy& resourceLimitsQos,
498  uint8_t ident);
499 
501  tinyxml2::XMLElement* elem,
502  ResourceLimitedContainerConfig& resourceLimitsQos,
503  uint8_t ident);
504 
506  tinyxml2::XMLElement* elem,
507  rtps::ThroughputControllerDescriptor& throughputController,
508  uint8_t ident);
509 
511  tinyxml2::XMLElement* elem,
512  FlowControllerDescriptorList& flow_controller_descriptor_list,
513  uint8_t ident);
514 
515  RTPS_DllAPI static XMLP_ret getXMLPortParameters(
516  tinyxml2::XMLElement* elem,
517  rtps::PortParameters& port,
518  uint8_t ident);
519 
521  tinyxml2::XMLElement* elem,
522  rtps::RTPSParticipantAllocationAttributes& allocation,
523  uint8_t ident);
524 
526  tinyxml2::XMLElement* elem,
527  rtps::RemoteLocatorsAllocationAttributes& allocation,
528  uint8_t ident);
529 
531  tinyxml2::XMLElement* elem,
532  rtps::SendBuffersAllocationAttributes& allocation,
533  uint8_t ident);
534 
535  RTPS_DllAPI static XMLP_ret getXMLDiscoverySettings(
536  tinyxml2::XMLElement* elem,
537  rtps::DiscoverySettings& settings,
538  uint8_t ident);
539 
541  tinyxml2::XMLElement* elem,
542  rtps::InitialAnnouncementConfig& config,
543  uint8_t ident);
544 
545  RTPS_DllAPI static XMLP_ret getXMLBuiltinAttributes(
546  tinyxml2::XMLElement* elem,
547  rtps::BuiltinAttributes& builtin,
548  uint8_t ident);
549 
550  RTPS_DllAPI static XMLP_ret getXMLOctetVector(
551  tinyxml2::XMLElement* elem,
552  std::vector<rtps::octet>& octet_vector,
553  uint8_t ident);
554 
555  RTPS_DllAPI static XMLP_ret getXMLInt(
556  tinyxml2::XMLElement* elem,
557  int* i,
558  uint8_t ident);
559 
560  RTPS_DllAPI static XMLP_ret getXMLUint(
561  tinyxml2::XMLElement* elem,
562  unsigned int* ui,
563  uint8_t ident);
564 
565  RTPS_DllAPI static XMLP_ret getXMLUint(
566  tinyxml2::XMLElement* elem,
567  uint16_t* ui16,
568  uint8_t ident);
569 
570  RTPS_DllAPI static XMLP_ret getXMLBool(
571  tinyxml2::XMLElement* elem,
572  bool* b,
573  uint8_t ident);
574 
575  RTPS_DllAPI static XMLP_ret getXMLEnum(
576  tinyxml2::XMLElement* elem,
577  rtps::DiscoveryProtocol_t* e,
578  uint8_t ident);
579 
580  RTPS_DllAPI static XMLP_ret getXMLList(
581  tinyxml2::XMLElement* elem,
582  eprosima::fastdds::rtps::RemoteServerList_t& list,
583  uint8_t ident);
584 
585  RTPS_DllAPI static XMLP_ret getXMLEnum(
586  tinyxml2::XMLElement* elem,
587  rtps::ParticipantFilteringFlags_t* e,
588  uint8_t ident);
589 
590  RTPS_DllAPI static XMLP_ret getXMLRemoteServer(
591  tinyxml2::XMLElement* elem,
592  eprosima::fastdds::rtps::RemoteServerAttributes& server,
593  uint8_t ident);
594 
595  RTPS_DllAPI static XMLP_ret getXMLString(
596  tinyxml2::XMLElement* elem,
597  std::string* s,
598  uint8_t ident);
599 
600  RTPS_DllAPI static XMLP_ret getXMLTransports(
601  tinyxml2::XMLElement* elem,
602  std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>>& transports,
603  uint8_t ident);
604 
606  tinyxml2::XMLElement* elem,
607  DisablePositiveACKsQosPolicy& disablePositiveAcks,
608  uint8_t ident);
609 
610  RTPS_DllAPI static XMLP_ret getXMLDataSharingQos(
611  tinyxml2::XMLElement* elem,
612  DataSharingQosPolicy& data_sharing,
613  uint8_t ident);
614 
615  RTPS_DllAPI static XMLP_ret getXMLguidPrefix(
616  tinyxml2::XMLElement* elem,
617  rtps::GuidPrefix_t& prefix,
618  uint8_t ident);
619 
621  tinyxml2::XMLElement* elem,
622  PublisherAttributes& publisher,
623  uint8_t ident);
624 
626  tinyxml2::XMLElement* elem,
627  SubscriberAttributes& subscriber,
628  uint8_t ident);
629 
630  RTPS_DllAPI static XMLP_ret getXMLBuiltinTransports(
631  tinyxml2::XMLElement* elem,
632  eprosima::fastdds::rtps::BuiltinTransports* bt,
633  uint8_t ident);
634 
635 private:
636 
637  static std::mutex collections_mtx_;
638  static std::set<std::string> flow_controller_descriptor_names_;
639 };
640 
641 } // namespace xmlparser
642 } // namespace fastrtps
643 } // namespace eprosima
644 
645 #endif // ifndef XML_PARSER_H_
Class PublisherAttributes, used by the user to define the attributes of a Publisher.
Definition: PublisherAttributes.h:40
Class SubscriberAttributes, used by the user to define the attributes of a Subscriber.
Definition: SubscriberAttributes.h:41
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:91
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 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 clear()
Clears the private static collections.
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 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 getXMLBuiltinTransports(tinyxml2::XMLElement *elem, eprosima::fastdds::rtps::BuiltinTransports *bt, 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 XMLP_ret loadXML(const std::string &filename, up_base_node_t &root, bool is_default)
Load a XML file.
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 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 getXMLFlowControllerDescriptorList(tinyxml2::XMLElement *elem, FlowControllerDescriptorList &flow_controller_descriptor_list, uint8_t ident)
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 getXMLTransports(tinyxml2::XMLElement *elem, std::vector< std::shared_ptr< fastdds::rtps::TransportDescriptorInterface >> &transports, uint8_t ident)
static RTPS_DllAPI XMLP_ret loadXMLProfiles(tinyxml2::XMLElement &profiles, up_base_node_t &root)
Load a XML node.
std::vector< std::shared_ptr< fastdds::rtps::FlowControllerDescriptor > > FlowControllerDescriptorList
Definition: XMLParser.h:95
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:284
std::unique_ptr< node_publisher_t > up_node_publisher_t
Definition: XMLParser.h:64
std::unique_ptr< node_subscriber_t > up_node_subscriber_t
Definition: XMLParser.h:69
std::map< std::string, std::string > node_att_map_t
Definition: XMLParser.h:47
DataNode< ReplierAttributes > node_replier_t
Definition: XMLParser.h:82
DataNode< SubscriberAttributes > node_subscriber_t
Definition: XMLParser.h:67
std::unique_ptr< ReplierAttributes > up_replier_t
Definition: XMLParser.h:81
std::unique_ptr< SubscriberAttributes > up_subscriber_t
Definition: XMLParser.h:66
node_publisher_t * p_node_publisher_t
Definition: XMLParser.h:63
DataNode< TopicAttributes > node_topic_t
Definition: XMLParser.h:72
std::map< std::string, sp_transport_t > sp_transport_map_t
Definition: XMLParser.h:52
node_subscriber_t * p_node_subscriber_t
Definition: XMLParser.h:68
std::shared_ptr< fastdds::rtps::TransportDescriptorInterface > sp_transport_t
Definition: XMLParser.h:51
types::DynamicTypeBuilder * p_dynamictypebuilder_t
Definition: XMLParser.h:53
std::unique_ptr< node_topic_t > up_node_topic_t
Definition: XMLParser.h:74
DataNode< PublisherAttributes > node_publisher_t
Definition: XMLParser.h:62
node_replier_t * p_node_replier_t
Definition: XMLParser.h:83
std::unique_ptr< ParticipantAttributes > up_participant_t
Definition: XMLParser.h:56
node_att_map_t::const_iterator node_att_map_cit_t
Definition: XMLParser.h:49
std::unique_ptr< TopicAttributes > up_topic_t
Definition: XMLParser.h:71
DataNode< RequesterAttributes > node_requester_t
Definition: XMLParser.h:77
DataNode< ParticipantAttributes > node_participant_t
Definition: XMLParser.h:57
std::map< std::string, p_dynamictypebuilder_t > p_dynamictype_map_t
Definition: XMLParser.h:54
std::unique_ptr< node_requester_t > up_node_requester_t
Definition: XMLParser.h:79
node_att_map_t::iterator node_att_map_it_t
Definition: XMLParser.h:48
std::unique_ptr< RequesterAttributes > up_requester_t
Definition: XMLParser.h:76
std::unique_ptr< BaseNode > up_base_node_t
Definition: XMLParser.h:43
std::unique_ptr< node_participant_t > up_node_participant_t
Definition: XMLParser.h:59
node_topic_t * p_node_topic_t
Definition: XMLParser.h:73
std::vector< up_base_node_t > up_base_node_vector_t
Definition: XMLParser.h:46
node_participant_t * p_node_participant_t
Definition: XMLParser.h:58
node_requester_t * p_node_requester_t
Definition: XMLParser.h:78
std::unique_ptr< PublisherAttributes > up_publisher_t
Definition: XMLParser.h:61
std::unique_ptr< node_replier_t > up_node_replier_t
Definition: XMLParser.h:84
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:34
Specifies the configuration of a resource limited collection.
Definition: ResourceLimitedContainerConfig.hpp:36