xml_utils.h
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014 Jose Luis Blanco Claraco (University of Almeria) |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under GNU General Public License version 3 |
7  | See <http://www.gnu.org/licenses/> |
8  +-------------------------------------------------------------------------+ */
9 #pragma once
10 
11 #include <rapidxml.hpp>
12 
13 #include <map>
14 #include <string>
15 
16 // Fwd decl:
17 namespace mrpt
18 {
19 namespace math
20 {
21 class TPolygon2D;
22 }
23 }
24 
25 namespace mvsim
26 {
43 {
44  const char* frmt;
45  void* val;
46 
47  TParamEntry() : frmt(NULL), val(NULL) {}
48  TParamEntry(const char* frmt_, void* val_) : frmt(frmt_), val(val_) {}
53  void parse(
54  const std::string& str, const std::string& varName,
55  const char* function_name_context = "") const;
56 };
57 
59  const rapidxml::xml_node<char>& xml_node,
60  const std::map<std::string, TParamEntry>& params,
61  const char* function_name_context = "");
62 
68  const rapidxml::xml_node<char>& xml_node,
69  const std::map<std::string, TParamEntry>& params,
70  const char* function_name_context = "");
71 
75  const rapidxml::xml_node<char>& xml_node,
76  const std::map<std::string, TParamEntry>& params,
77  const char* function_name_context = "");
78 
79 template <class NODE_LIST>
81  NODE_LIST& lst_nodes, const std::map<std::string, TParamEntry>& params,
82  const char* function_name_context = "")
83 {
84  for (typename NODE_LIST::iterator it = lst_nodes.begin();
85  it != lst_nodes.end(); ++it)
86  parse_xmlnode_children_as_param(**it, params, function_name_context);
87 }
88 
89 // Bits:
90 
97  const std::string& s, bool allow_missing_angle = false,
98  double default_angle_radians = 0.0);
99 
105  const rapidxml::xml_node<char>& xml_node, mrpt::math::TPolygon2D& out_poly,
106  const char* function_name_context = "");
107 }
This file contains rapidxml parser and DOM implementation.
void parse_xmlnode_shape(const rapidxml::xml_node< char > &xml_node, mrpt::math::TPolygon2D &out_poly, const char *function_name_context="")
Definition: xml_utils.cpp:239
bool parse_xmlnode_as_param(const rapidxml::xml_node< char > &xml_node, const std::map< std::string, TParamEntry > &params, const char *function_name_context="")
Definition: xml_utils.cpp:176
XmlRpcServer s
void parse_xmlnodelist_children_as_param(NODE_LIST &lst_nodes, const std::map< std::string, TParamEntry > &params, const char *function_name_context="")
Definition: xml_utils.h:80
void parse_xmlnode_attribs(const rapidxml::xml_node< char > &xml_node, const std::map< std::string, TParamEntry > &params, const char *function_name_context="")
Definition: xml_utils.cpp:160
const char * frmt
Definition: xml_utils.h:44
void parse_xmlnode_children_as_param(const rapidxml::xml_node< char > &xml_node, const std::map< std::string, TParamEntry > &params, const char *function_name_context="")
Definition: xml_utils.cpp:196
TParamEntry(const char *frmt_, void *val_)
Definition: xml_utils.h:48
vec3 parseXYPHI(const std::string &s, bool allow_missing_angle=false, double default_angle_radians=0.0)
Definition: xml_utils.cpp:214


mvsim
Author(s):
autogenerated on Thu Jun 6 2019 19:36:40