Fast RTPS  Version 2.1.0
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 <string>
31 
32 namespace tinyxml2 {
33 class XMLElement;
34 class XMLDocument;
35 } // namespace tinyxml2
36 
37 namespace eprosima {
38 namespace fastrtps {
39 namespace xmlparser {
40 
41 class BaseNode;
42 template <class T> class DataNode;
43 
44 typedef std::unique_ptr<BaseNode> up_base_node_t;
45 typedef std::vector<up_base_node_t> up_base_node_vector_t;
46 typedef std::map<std::string, std::string> node_att_map_t;
47 typedef node_att_map_t::iterator node_att_map_it_t;
48 typedef node_att_map_t::const_iterator node_att_map_cit_t;
49 
50 typedef std::shared_ptr<fastdds::rtps::TransportDescriptorInterface> sp_transport_t;
51 typedef std::map<std::string, sp_transport_t> sp_transport_map_t;
53 typedef std::map<std::string, p_dynamictypebuilder_t> p_dynamictype_map_t;
54 
55 typedef std::unique_ptr<ParticipantAttributes> up_participant_t;
58 typedef std::unique_ptr<node_participant_t> up_node_participant_t;
59 
60 typedef std::unique_ptr<PublisherAttributes> up_publisher_t;
63 typedef std::unique_ptr<node_publisher_t> up_node_publisher_t;
64 
65 typedef std::unique_ptr<SubscriberAttributes> up_subscriber_t;
68 typedef std::unique_ptr<node_subscriber_t> up_node_subscriber_t;
69 
70 typedef std::unique_ptr<TopicAttributes> up_topic_t;
73 typedef std::unique_ptr<node_topic_t> up_node_topic_t;
74 
75 typedef std::unique_ptr<RequesterAttributes> up_requester_t;
78 typedef std::unique_ptr<node_requester_t> up_node_requester_t;
79 
80 typedef std::unique_ptr<ReplierAttributes> up_replier_t;
83 typedef std::unique_ptr<node_replier_t> up_node_replier_t;
84 
89 class XMLParser
90 {
91 
92 public:
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 
151 protected:
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  RTPS_DllAPI static XMLP_ret parseRoot(
166  tinyxml2::XMLElement* p_root,
167  BaseNode& rootNode);
168 
169 
175  RTPS_DllAPI static XMLP_ret parseLogConfig(
176  tinyxml2::XMLElement* p_root);
177 
178  RTPS_DllAPI static XMLP_ret parseXMLLibrarySettings(
179  tinyxml2::XMLElement* p_root);
180 
181  RTPS_DllAPI static XMLP_ret parseXMLTransportsProf(
182  tinyxml2::XMLElement* p_root);
183 
184  RTPS_DllAPI static XMLP_ret parseXMLParticipantProf(
185  tinyxml2::XMLElement* p_root,
186  BaseNode& rootNode);
187 
188  RTPS_DllAPI static XMLP_ret parseXMLPublisherProf(
189  tinyxml2::XMLElement* p_root,
190  BaseNode& rootNode);
191 
192  RTPS_DllAPI static XMLP_ret parseXMLSubscriberProf(
193  tinyxml2::XMLElement* p_root,
194  BaseNode& rootNode);
195 
196  RTPS_DllAPI static XMLP_ret parseXMLTopicData(
197  tinyxml2::XMLElement* p_root,
198  BaseNode& rootNode);
199 
200  RTPS_DllAPI static XMLP_ret parseXMLRequesterProf(
201  tinyxml2::XMLElement* p_root,
202  BaseNode& rootNode);
203 
204  RTPS_DllAPI static XMLP_ret parseXMLReplierProf(
205  tinyxml2::XMLElement* p_root,
206  BaseNode& rootNode);
207 
208  RTPS_DllAPI static XMLP_ret parseXMLTransportData(
209  tinyxml2::XMLElement* p_root);
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 
220  tinyxml2::XMLElement* p_root,
221  sp_transport_t p_transport);
222 
223  RTPS_DllAPI static XMLP_ret parse_tls_config(
224  tinyxml2::XMLElement* p_root,
225  sp_transport_t tcp_transport);
226 
232  RTPS_DllAPI static XMLP_ret parseXMLConsumer(
233  tinyxml2::XMLElement& consumer);
234 
235  RTPS_DllAPI static XMLP_ret parseXMLDynamicTypes(
236  tinyxml2::XMLElement& types);
237 
238  RTPS_DllAPI static XMLP_ret parseDynamicTypes(
239  tinyxml2::XMLElement* p_root);
240 
241  RTPS_DllAPI static XMLP_ret parseXMLTypes(
242  tinyxml2::XMLElement* p_root);
243 
244  RTPS_DllAPI static XMLP_ret parseXMLDynamicType(
245  tinyxml2::XMLElement* p_root);
246 
248  tinyxml2::XMLElement* p_root);
249 
250  RTPS_DllAPI static XMLP_ret parseXMLUnionDynamicType(
251  tinyxml2::XMLElement* p_root);
252 
253  RTPS_DllAPI static XMLP_ret parseXMLEnumDynamicType(
254  tinyxml2::XMLElement* p_root);
255 
256  RTPS_DllAPI static XMLP_ret parseXMLAliasDynamicType(
257  tinyxml2::XMLElement* p_root);
258 
260  tinyxml2::XMLElement* p_root);
261 
263  tinyxml2::XMLElement* p_root);
264 
266  tinyxml2::XMLElement* p_root,
267  p_dynamictypebuilder_t p_dynamictype,
268  types::MemberId mId,
269  uint16_t& position);
270 
272  tinyxml2::XMLElement* p_root,
273  p_dynamictypebuilder_t p_dynamictype,
274  uint16_t& position);
275 
277  tinyxml2::XMLElement* p_root,
278  p_dynamictypebuilder_t p_dynamictype,
279  types::MemberId mId);
280 
282  tinyxml2::XMLElement* p_root,
283  p_dynamictypebuilder_t p_dynamictype,
284  types::MemberId mId,
285  const std::string& values);
286 
287  RTPS_DllAPI static XMLP_ret fillDataNode(
288  tinyxml2::XMLElement* p_profile,
289  DataNode<ParticipantAttributes>& participant_node);
290 
291  RTPS_DllAPI static XMLP_ret fillDataNode(
292  tinyxml2::XMLElement* p_profile,
293  DataNode<PublisherAttributes>& publisher_node);
294 
295  RTPS_DllAPI static XMLP_ret fillDataNode(
296  tinyxml2::XMLElement* p_profile,
297  DataNode<SubscriberAttributes>& subscriber_node);
298 
299  RTPS_DllAPI static XMLP_ret fillDataNode(
300  tinyxml2::XMLElement* node,
301  DataNode<TopicAttributes>& topic_node);
302 
303  RTPS_DllAPI static XMLP_ret fillDataNode(
304  tinyxml2::XMLElement* node,
305  DataNode<RequesterAttributes>& requester_node);
306 
307  RTPS_DllAPI static XMLP_ret fillDataNode(
308  tinyxml2::XMLElement* node,
309  DataNode<ReplierAttributes>& replier_node);
310 
311  template <typename T>
312  RTPS_DllAPI static void addAllAttributes(
313  tinyxml2::XMLElement* p_profile,
314  DataNode<T>& node);
315 
316  RTPS_DllAPI static XMLP_ret getXMLEnum(
317  tinyxml2::XMLElement* elem,
319  uint8_t ident);
320 
321  RTPS_DllAPI static XMLP_ret getXMLPropertiesPolicy(
322  tinyxml2::XMLElement* elem,
323  rtps::PropertyPolicy& propertiesPolicy,
324  uint8_t ident);
325 
327  tinyxml2::XMLElement* elem,
328  rtps::MemoryManagementPolicy_t& historyMemoryPolicy,
329  uint8_t ident);
330 
331  RTPS_DllAPI static XMLP_ret getXMLLocatorList(
332  tinyxml2::XMLElement* elem,
333  rtps::LocatorList_t& locatorList,
334  uint8_t ident);
335 
336  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv4(
337  tinyxml2::XMLElement* elem,
338  rtps::Locator_t& locator,
339  uint8_t ident);
340 
341  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv6(
342  tinyxml2::XMLElement* elem,
343  rtps::Locator_t& locator,
344  uint8_t ident);
345 
346  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv4(
347  tinyxml2::XMLElement* elem,
348  rtps::Locator_t& locator,
349  uint8_t ident);
350 
351  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv6(
352  tinyxml2::XMLElement* elem,
353  rtps::Locator_t& locator,
354  uint8_t ident);
355 
356  RTPS_DllAPI static XMLP_ret getXMLWriterTimes(
357  tinyxml2::XMLElement* elem,
358  rtps::WriterTimes& times,
359  uint8_t ident);
360 
361  RTPS_DllAPI static XMLP_ret getXMLReaderTimes(
362  tinyxml2::XMLElement* elem,
363  rtps::ReaderTimes& times,
364  uint8_t ident);
365 
366  RTPS_DllAPI static XMLP_ret getXMLDuration(
367  tinyxml2::XMLElement* elem,
368  Duration_t& duration,
369  uint8_t ident);
370 
371  RTPS_DllAPI static XMLP_ret getXMLWriterQosPolicies(
372  tinyxml2::XMLElement* elem,
373  WriterQos& qos,
374  uint8_t ident);
375 
376  RTPS_DllAPI static XMLP_ret getXMLReaderQosPolicies(
377  tinyxml2::XMLElement* elem,
378  ReaderQos& qos,
379  uint8_t ident);
380 
381  RTPS_DllAPI static XMLP_ret getXMLPublishModeQos(
382  tinyxml2::XMLElement* elem,
383  PublishModeQosPolicy& publishMode,
384  uint8_t ident);
385 
386  RTPS_DllAPI static XMLP_ret getXMLGroupDataQos(
387  tinyxml2::XMLElement* elem,
388  GroupDataQosPolicy& groupData,
389  uint8_t ident);
390 
391  RTPS_DllAPI static XMLP_ret getXMLTopicDataQos(
392  tinyxml2::XMLElement* elem,
393  TopicDataQosPolicy& topicData,
394  uint8_t ident);
395 
396  RTPS_DllAPI static XMLP_ret getXMLPartitionQos(
397  tinyxml2::XMLElement* elem,
398  PartitionQosPolicy& partition,
399  uint8_t ident);
400 
401  RTPS_DllAPI static XMLP_ret getXMLPresentationQos(
402  tinyxml2::XMLElement* elem,
403  PresentationQosPolicy& presentation,
404  uint8_t ident);
405 
407  tinyxml2::XMLElement* elem,
408  DestinationOrderQosPolicy& destinationOrder,
409  uint8_t ident);
410 
412  tinyxml2::XMLElement* elem,
413  OwnershipStrengthQosPolicy& ownershipStrength,
414  uint8_t ident);
415 
416  RTPS_DllAPI static XMLP_ret getXMLOwnershipQos(
417  tinyxml2::XMLElement* elem,
418  OwnershipQosPolicy& ownership,
419  uint8_t ident);
420 
421  RTPS_DllAPI static XMLP_ret getXMLTimeBasedFilterQos(
422  tinyxml2::XMLElement* elem,
423  TimeBasedFilterQosPolicy& timeBasedFilter,
424  uint8_t ident);
425 
426  RTPS_DllAPI static XMLP_ret getXMLUserDataQos(
427  tinyxml2::XMLElement* elem,
428  UserDataQosPolicy& userData,
429  uint8_t ident);
430 
431  RTPS_DllAPI static XMLP_ret getXMLLifespanQos(
432  tinyxml2::XMLElement* elem,
433  LifespanQosPolicy& lifespan,
434  uint8_t ident);
435 
436  RTPS_DllAPI static XMLP_ret getXMLReliabilityQos(
437  tinyxml2::XMLElement* elem,
438  ReliabilityQosPolicy& reliability,
439  uint8_t ident);
440 
441  RTPS_DllAPI static XMLP_ret getXMLLivelinessQos(
442  tinyxml2::XMLElement* elem,
443  LivelinessQosPolicy& liveliness,
444  uint8_t ident);
445 
446  RTPS_DllAPI static XMLP_ret getXMLLatencyBudgetQos(
447  tinyxml2::XMLElement* elem,
448  LatencyBudgetQosPolicy& latencyBudget,
449  uint8_t ident);
450 
451  RTPS_DllAPI static XMLP_ret getXMLDeadlineQos(
452  tinyxml2::XMLElement* elem,
453  DeadlineQosPolicy& deadline,
454  uint8_t ident);
455 
457  tinyxml2::XMLElement* elem,
458  DurabilityServiceQosPolicy& durabilityService,
459  uint8_t ident);
460 
461  RTPS_DllAPI static XMLP_ret getXMLDurabilityQos(
462  tinyxml2::XMLElement* elem,
463  DurabilityQosPolicy& durability,
464  uint8_t ident);
465 
466  RTPS_DllAPI static XMLP_ret getXMLTopicAttributes(
467  tinyxml2::XMLElement* elem,
468  TopicAttributes& topic,
469  uint8_t ident);
470 
471  RTPS_DllAPI static XMLP_ret getXMLHistoryQosPolicy(
472  tinyxml2::XMLElement* elem,
473  HistoryQosPolicy& historyQos,
474  uint8_t ident);
475 
476  RTPS_DllAPI static XMLP_ret getXMLResourceLimitsQos(
477  tinyxml2::XMLElement* elem,
478  ResourceLimitsQosPolicy& resourceLimitsQos,
479  uint8_t ident);
480 
482  tinyxml2::XMLElement* elem,
483  ResourceLimitedContainerConfig& resourceLimitsQos,
484  uint8_t ident);
485 
487  tinyxml2::XMLElement* elem,
488  rtps::ThroughputControllerDescriptor& throughputController,
489  uint8_t ident);
490 
491  RTPS_DllAPI static XMLP_ret getXMLPortParameters(
492  tinyxml2::XMLElement* elem,
493  rtps::PortParameters& port,
494  uint8_t ident);
495 
497  tinyxml2::XMLElement* elem,
498  rtps::RTPSParticipantAllocationAttributes& allocation,
499  uint8_t ident);
500 
502  tinyxml2::XMLElement* elem,
503  rtps::RemoteLocatorsAllocationAttributes& allocation,
504  uint8_t ident);
505 
507  tinyxml2::XMLElement* elem,
508  rtps::SendBuffersAllocationAttributes& allocation,
509  uint8_t ident);
510 
511  RTPS_DllAPI static XMLP_ret getXMLDiscoverySettings(
512  tinyxml2::XMLElement* elem,
513  rtps::DiscoverySettings& settings,
514  uint8_t ident);
515 
517  tinyxml2::XMLElement* elem,
518  rtps::InitialAnnouncementConfig& config,
519  uint8_t ident);
520 
521  RTPS_DllAPI static XMLP_ret getXMLBuiltinAttributes(
522  tinyxml2::XMLElement* elem,
523  rtps::BuiltinAttributes& builtin,
524  uint8_t ident);
525 
526  RTPS_DllAPI static XMLP_ret getXMLOctetVector(
527  tinyxml2::XMLElement* elem,
528  std::vector<rtps::octet>& octetVector,
529  uint8_t ident);
530 
531  RTPS_DllAPI static XMLP_ret getXMLInt(
532  tinyxml2::XMLElement* elem,
533  int* i,
534  uint8_t ident);
535 
536  RTPS_DllAPI static XMLP_ret getXMLUint(
537  tinyxml2::XMLElement* elem,
538  unsigned int* ui,
539  uint8_t ident);
540 
541  RTPS_DllAPI static XMLP_ret getXMLUint(
542  tinyxml2::XMLElement* elem,
543  uint16_t* ui16,
544  uint8_t ident);
545 
546  RTPS_DllAPI static XMLP_ret getXMLBool(
547  tinyxml2::XMLElement* elem,
548  bool* b,
549  uint8_t ident);
550 
551  RTPS_DllAPI static XMLP_ret getXMLEnum(
552  tinyxml2::XMLElement* elem,
553  rtps::DiscoveryProtocol_t* e,
554  uint8_t ident);
555 
556  RTPS_DllAPI static XMLP_ret getXMLList(
557  tinyxml2::XMLElement* elem,
558  eprosima::fastdds::rtps::RemoteServerList_t& list,
559  uint8_t ident);
560 
561  RTPS_DllAPI static XMLP_ret getXMLEnum(
562  tinyxml2::XMLElement* elem,
563  rtps::ParticipantFilteringFlags_t* e,
564  uint8_t ident);
565 
566  RTPS_DllAPI static XMLP_ret getXMLRemoteServer(
567  tinyxml2::XMLElement* elem,
568  eprosima::fastdds::rtps::RemoteServerAttributes& server,
569  uint8_t ident);
570 
571  RTPS_DllAPI static XMLP_ret getXMLString(
572  tinyxml2::XMLElement* elem,
573  std::string* s,
574  uint8_t ident);
575 
576  RTPS_DllAPI static XMLP_ret getXMLTransports(
577  tinyxml2::XMLElement* elem,
578  std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>>& transports,
579  uint8_t ident);
580 
582  tinyxml2::XMLElement* elem,
583  DisablePositiveACKsQosPolicy& disablePositiveAcks,
584  uint8_t ident);
585 
586  RTPS_DllAPI static XMLP_ret getXMLguidPrefix(
587  tinyxml2::XMLElement* elem,
588  rtps::GuidPrefix_t& prefix,
589  uint8_t ident);
590 
592  tinyxml2::XMLElement* elem,
593  PublisherAttributes& publisher,
594  uint8_t ident);
595 
597  tinyxml2::XMLElement* elem,
598  SubscriberAttributes& subscriber,
599  uint8_t ident);
600 };
601 
602 } // namespace xmlparser
603 } // namespace fastrtps
604 } // namespace eprosima
605 
606 #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: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 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 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 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 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 parseRoot(tinyxml2::XMLElement *p_root, BaseNode &rootNode)
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 getXMLOctetVector(tinyxml2::XMLElement *elem, std::vector< rtps::octet > &octetVector, 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 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.
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:30
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:42
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
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:30
Specifies the configuration of a resource limited collection.
Definition: ResourceLimitedContainerConfig.hpp:34