Fast RTPS  Version 2.4.1
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 
171  RTPS_DllAPI static XMLP_ret parseLogConfig(
172  tinyxml2::XMLElement* p_root);
173 
174  RTPS_DllAPI static XMLP_ret parseXMLLibrarySettings(
175  tinyxml2::XMLElement* p_root);
176 
177  RTPS_DllAPI static XMLP_ret parseXMLTransportsProf(
178  tinyxml2::XMLElement* p_root);
179 
180  RTPS_DllAPI static XMLP_ret parseXMLParticipantProf(
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 
188  RTPS_DllAPI static XMLP_ret parseXMLSubscriberProf(
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 
246  RTPS_DllAPI static XMLP_ret parseXMLUnionDynamicType(
247  tinyxml2::XMLElement* p_root);
248 
249  RTPS_DllAPI static XMLP_ret parseXMLEnumDynamicType(
250  tinyxml2::XMLElement* p_root);
251 
252  RTPS_DllAPI static XMLP_ret parseXMLAliasDynamicType(
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 
317  RTPS_DllAPI static XMLP_ret getXMLPropertiesPolicy(
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 
327  RTPS_DllAPI static XMLP_ret getXMLLocatorList(
328  tinyxml2::XMLElement* elem,
329  rtps::LocatorList_t& locatorList,
330  uint8_t ident);
331 
332  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv4(
333  tinyxml2::XMLElement* elem,
334  rtps::Locator_t& locator,
335  uint8_t ident);
336 
337  RTPS_DllAPI static XMLP_ret getXMLLocatorUDPv6(
338  tinyxml2::XMLElement* elem,
339  rtps::Locator_t& locator,
340  uint8_t ident);
341 
342  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv4(
343  tinyxml2::XMLElement* elem,
344  rtps::Locator_t& locator,
345  uint8_t ident);
346 
347  RTPS_DllAPI static XMLP_ret getXMLLocatorTCPv6(
348  tinyxml2::XMLElement* elem,
349  rtps::Locator_t& locator,
350  uint8_t ident);
351 
352  RTPS_DllAPI static XMLP_ret getXMLWriterTimes(
353  tinyxml2::XMLElement* elem,
354  rtps::WriterTimes& times,
355  uint8_t ident);
356 
357  RTPS_DllAPI static XMLP_ret getXMLReaderTimes(
358  tinyxml2::XMLElement* elem,
359  rtps::ReaderTimes& times,
360  uint8_t ident);
361 
362  RTPS_DllAPI static XMLP_ret getXMLDuration(
363  tinyxml2::XMLElement* elem,
364  Duration_t& duration,
365  uint8_t ident);
366 
367  RTPS_DllAPI static XMLP_ret getXMLWriterQosPolicies(
368  tinyxml2::XMLElement* elem,
369  WriterQos& qos,
370  uint8_t ident);
371 
372  RTPS_DllAPI static XMLP_ret getXMLReaderQosPolicies(
373  tinyxml2::XMLElement* elem,
374  ReaderQos& qos,
375  uint8_t ident);
376 
377  RTPS_DllAPI static XMLP_ret getXMLPublishModeQos(
378  tinyxml2::XMLElement* elem,
379  PublishModeQosPolicy& publishMode,
380  uint8_t ident);
381 
382  RTPS_DllAPI static XMLP_ret getXMLGroupDataQos(
383  tinyxml2::XMLElement* elem,
384  GroupDataQosPolicy& groupData,
385  uint8_t ident);
386 
387  RTPS_DllAPI static XMLP_ret getXMLTopicDataQos(
388  tinyxml2::XMLElement* elem,
389  TopicDataQosPolicy& topicData,
390  uint8_t ident);
391 
392  RTPS_DllAPI static XMLP_ret getXMLPartitionQos(
393  tinyxml2::XMLElement* elem,
394  PartitionQosPolicy& partition,
395  uint8_t ident);
396 
397  RTPS_DllAPI static XMLP_ret getXMLPresentationQos(
398  tinyxml2::XMLElement* elem,
399  PresentationQosPolicy& presentation,
400  uint8_t ident);
401 
403  tinyxml2::XMLElement* elem,
404  DestinationOrderQosPolicy& destinationOrder,
405  uint8_t ident);
406 
408  tinyxml2::XMLElement* elem,
409  OwnershipStrengthQosPolicy& ownershipStrength,
410  uint8_t ident);
411 
412  RTPS_DllAPI static XMLP_ret getXMLOwnershipQos(
413  tinyxml2::XMLElement* elem,
414  OwnershipQosPolicy& ownership,
415  uint8_t ident);
416 
417  RTPS_DllAPI static XMLP_ret getXMLTimeBasedFilterQos(
418  tinyxml2::XMLElement* elem,
419  TimeBasedFilterQosPolicy& timeBasedFilter,
420  uint8_t ident);
421 
422  RTPS_DllAPI static XMLP_ret getXMLUserDataQos(
423  tinyxml2::XMLElement* elem,
424  UserDataQosPolicy& userData,
425  uint8_t ident);
426 
427  RTPS_DllAPI static XMLP_ret getXMLLifespanQos(
428  tinyxml2::XMLElement* elem,
429  LifespanQosPolicy& lifespan,
430  uint8_t ident);
431 
432  RTPS_DllAPI static XMLP_ret getXMLReliabilityQos(
433  tinyxml2::XMLElement* elem,
434  ReliabilityQosPolicy& reliability,
435  uint8_t ident);
436 
437  RTPS_DllAPI static XMLP_ret getXMLLivelinessQos(
438  tinyxml2::XMLElement* elem,
439  LivelinessQosPolicy& liveliness,
440  uint8_t ident);
441 
442  RTPS_DllAPI static XMLP_ret getXMLLatencyBudgetQos(
443  tinyxml2::XMLElement* elem,
444  LatencyBudgetQosPolicy& latencyBudget,
445  uint8_t ident);
446 
447  RTPS_DllAPI static XMLP_ret getXMLDeadlineQos(
448  tinyxml2::XMLElement* elem,
449  DeadlineQosPolicy& deadline,
450  uint8_t ident);
451 
453  tinyxml2::XMLElement* elem,
454  DurabilityServiceQosPolicy& durabilityService,
455  uint8_t ident);
456 
457  RTPS_DllAPI static XMLP_ret getXMLDurabilityQos(
458  tinyxml2::XMLElement* elem,
459  DurabilityQosPolicy& durability,
460  uint8_t ident);
461 
462  RTPS_DllAPI static XMLP_ret getXMLTopicAttributes(
463  tinyxml2::XMLElement* elem,
464  TopicAttributes& topic,
465  uint8_t ident);
466 
467  RTPS_DllAPI static XMLP_ret getXMLHistoryQosPolicy(
468  tinyxml2::XMLElement* elem,
469  HistoryQosPolicy& historyQos,
470  uint8_t ident);
471 
472  RTPS_DllAPI static XMLP_ret getXMLResourceLimitsQos(
473  tinyxml2::XMLElement* elem,
474  ResourceLimitsQosPolicy& resourceLimitsQos,
475  uint8_t ident);
476 
478  tinyxml2::XMLElement* elem,
479  ResourceLimitedContainerConfig& resourceLimitsQos,
480  uint8_t ident);
481 
483  tinyxml2::XMLElement* elem,
484  rtps::ThroughputControllerDescriptor& throughputController,
485  uint8_t ident);
486 
487  RTPS_DllAPI static XMLP_ret getXMLPortParameters(
488  tinyxml2::XMLElement* elem,
489  rtps::PortParameters& port,
490  uint8_t ident);
491 
493  tinyxml2::XMLElement* elem,
494  rtps::RTPSParticipantAllocationAttributes& allocation,
495  uint8_t ident);
496 
498  tinyxml2::XMLElement* elem,
499  rtps::RemoteLocatorsAllocationAttributes& allocation,
500  uint8_t ident);
501 
503  tinyxml2::XMLElement* elem,
504  rtps::SendBuffersAllocationAttributes& allocation,
505  uint8_t ident);
506 
507  RTPS_DllAPI static XMLP_ret getXMLDiscoverySettings(
508  tinyxml2::XMLElement* elem,
509  rtps::DiscoverySettings& settings,
510  uint8_t ident);
511 
513  tinyxml2::XMLElement* elem,
514  rtps::InitialAnnouncementConfig& config,
515  uint8_t ident);
516 
517  RTPS_DllAPI static XMLP_ret getXMLBuiltinAttributes(
518  tinyxml2::XMLElement* elem,
519  rtps::BuiltinAttributes& builtin,
520  uint8_t ident);
521 
522  RTPS_DllAPI static XMLP_ret getXMLOctetVector(
523  tinyxml2::XMLElement* elem,
524  std::vector<rtps::octet>& octetVector,
525  uint8_t ident);
526 
527  RTPS_DllAPI static XMLP_ret getXMLInt(
528  tinyxml2::XMLElement* elem,
529  int* i,
530  uint8_t ident);
531 
532  RTPS_DllAPI static XMLP_ret getXMLUint(
533  tinyxml2::XMLElement* elem,
534  unsigned int* ui,
535  uint8_t ident);
536 
537  RTPS_DllAPI static XMLP_ret getXMLUint(
538  tinyxml2::XMLElement* elem,
539  uint16_t* ui16,
540  uint8_t ident);
541 
542  RTPS_DllAPI static XMLP_ret getXMLBool(
543  tinyxml2::XMLElement* elem,
544  bool* b,
545  uint8_t ident);
546 
547  RTPS_DllAPI static XMLP_ret getXMLEnum(
548  tinyxml2::XMLElement* elem,
549  rtps::DiscoveryProtocol_t* e,
550  uint8_t ident);
551 
552  RTPS_DllAPI static XMLP_ret getXMLList(
553  tinyxml2::XMLElement* elem,
554  eprosima::fastdds::rtps::RemoteServerList_t& list,
555  uint8_t ident);
556 
557  RTPS_DllAPI static XMLP_ret getXMLEnum(
558  tinyxml2::XMLElement* elem,
559  rtps::ParticipantFilteringFlags_t* e,
560  uint8_t ident);
561 
562  RTPS_DllAPI static XMLP_ret getXMLRemoteServer(
563  tinyxml2::XMLElement* elem,
564  eprosima::fastdds::rtps::RemoteServerAttributes& server,
565  uint8_t ident);
566 
567  RTPS_DllAPI static XMLP_ret getXMLString(
568  tinyxml2::XMLElement* elem,
569  std::string* s,
570  uint8_t ident);
571 
572  RTPS_DllAPI static XMLP_ret getXMLTransports(
573  tinyxml2::XMLElement* elem,
574  std::vector<std::shared_ptr<fastdds::rtps::TransportDescriptorInterface>>& transports,
575  uint8_t ident);
576 
578  tinyxml2::XMLElement* elem,
579  DisablePositiveACKsQosPolicy& disablePositiveAcks,
580  uint8_t ident);
581 
582  RTPS_DllAPI static XMLP_ret getXMLDataSharingQos(
583  tinyxml2::XMLElement* elem,
584  DataSharingQosPolicy& data_sharing,
585  uint8_t ident);
586 
587  RTPS_DllAPI static XMLP_ret getXMLguidPrefix(
588  tinyxml2::XMLElement* elem,
589  rtps::GuidPrefix_t& prefix,
590  uint8_t ident);
591 
593  tinyxml2::XMLElement* elem,
594  PublisherAttributes& publisher,
595  uint8_t ident);
596 
598  tinyxml2::XMLElement* elem,
599  SubscriberAttributes& subscriber,
600  uint8_t ident);
601 };
602 
603 } // namespace xmlparser
604 } // namespace fastrtps
605 } // namespace eprosima
606 
607 #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 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 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.
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: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
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:35
Specifies the configuration of a resource limited collection.
Definition: ResourceLimitedContainerConfig.hpp:34