Fast RTPS  Version 2.7.1
Fast RTPS
XMLEndpointParser.h
1 // Copyright 2016 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 
20 #ifndef XMLENDPOINTPARSER_H_
21 #define XMLENDPOINTPARSER_H_
22 #ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
23 
24 #include <cstdint>
25 #include <set>
26 #include <string>
27 #include <vector>
28 
29 #include <tinyxml2.h>
30 
31 #include <fastdds/rtps/builtin/data/ReaderProxyData.h>
32 #include <fastdds/rtps/builtin/data/WriterProxyData.h>
33 #include <fastrtps/xmlparser/XMLParserCommon.h>
34 #include <fastrtps/xmlparser/XMLParser.h>
35 
36 namespace tinyxml2 {
37 class XMLElement;
38 class XMLDocument;
39 } // namespace tinyxml2
40 
41 
42 
43 namespace eprosima {
44 namespace fastrtps {
45 namespace rtps {
46 class ReaderProxyData;
47 class WriterProxyData;
48 } // namespace rtps
49 
50 namespace xmlparser {
51 
57 {
58 public:
59 
61  {
62  }
63 
65  {
66  }
67 
69  std::string m_RTPSParticipantName;
71  std::vector<rtps::ReaderProxyData*> m_readers;
73  std::vector<rtps::WriterProxyData*> m_writers;
74 };
75 
81 {
82 public:
83 
85  virtual ~XMLEndpointParser();
93  std::string& filename);
100  tinyxml2::XMLDocument& doc);
101 
103  tinyxml2::XMLElement* xml_endpoint,
105 
113  tinyxml2::XMLElement* xml_endpoint,
122  tinyxml2::XMLElement* xml_endpoint,
132  const char* partname,
133  uint16_t id,
134  rtps::ReaderProxyData** rdataptr);
143  const char* partname,
144  uint16_t id,
145  rtps::WriterProxyData** wdataptr);
146 
147 private:
148 
149  XMLP_ret get_disable_positive_acks_qos(
150  tinyxml2::XMLElement* elem,
151  DisablePositiveACKsQosPolicy& disable_positive_acks_qos);
152 
153  std::set<int16_t> m_endpointIds;
154  std::set<uint32_t> m_entityIds;
155 
156  std::vector<StaticRTPSParticipantInfo*> m_RTPSParticipants;
157 };
158 
159 
160 } /* xmlparser */
161 } /* namespace */
162 } /* namespace eprosima */
163 
164 #endif // ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
165 #endif /* XMLENDPOINTPARSER_H_ */
Class StaticRTPSParticipantInfo, contains the information of writers and readers loaded from the XML ...
Definition: XMLEndpointParser.h:57
std::vector< rtps::ReaderProxyData * > m_readers
Vector of ReaderProxyData pointer.
Definition: XMLEndpointParser.h:71
std::string m_RTPSParticipantName
RTPS PArticipant name.
Definition: XMLEndpointParser.h:69
StaticRTPSParticipantInfo()
Definition: XMLEndpointParser.h:60
std::vector< rtps::WriterProxyData * > m_writers
Vector of ReaderProxyData pointer.
Definition: XMLEndpointParser.h:73
virtual ~StaticRTPSParticipantInfo()
Definition: XMLEndpointParser.h:64
Class XMLEndpointParser used to parse the XML file that contains information about remote endpoints.
Definition: XMLEndpointParser.h:81
void loadXMLParticipantEndpoint(tinyxml2::XMLElement *xml_endpoint, StaticRTPSParticipantInfo *pdata)
XMLP_ret loadXMLNode(tinyxml2::XMLDocument &doc)
Load the XML node.
XMLP_ret loadXMLFile(std::string &filename)
Load the XML file.
XMLP_ret loadXMLWriterEndpoint(tinyxml2::XMLElement *xml_endpoint, StaticRTPSParticipantInfo *pdata)
Load a Writer endpoint.
XMLP_ret lookforWriter(const char *partname, uint16_t id, rtps::WriterProxyData **wdataptr)
Look for a writer in the previously loaded endpoints.
XMLP_ret lookforReader(const char *partname, uint16_t id, rtps::ReaderProxyData **rdataptr)
Look for a reader in the previously loaded endpoints.
XMLP_ret loadXMLReaderEndpoint(tinyxml2::XMLElement *xml_endpoint, StaticRTPSParticipantInfo *pdata)
Load a Reader endpoint.
Class XMLParser, used to load XML data.
Definition: XMLParser.h:90
XMLP_ret
Enum class XMLP_ret, used to provide a strongly typed result from the operations within this module.
Definition: XMLParserCommon.h:27
fastdds::dds::DisablePositiveACKsQosPolicy DisablePositiveACKsQosPolicy
Definition: QosPolicies.h:96
eProsima namespace.
Definition: LibrarySettingsAttributes.h:23
Definition: XMLEndpointParser.h:36