modules
simulator
src
XMLClassesRegistry.h
Go to the documentation of this file.
1
/*+-------------------------------------------------------------------------+
2
| MultiVehicle simulator (libmvsim) |
3
| |
4
| Copyright (C) 2014-2024 Jose Luis Blanco Claraco |
5
| Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6
| Distributed under 3-clause BSD License |
7
| See COPYING |
8
+-------------------------------------------------------------------------+ */
9
#pragma once
10
11
#include <map>
12
#include <
rapidxml.hpp
>
13
#include <string>
14
15
namespace
mvsim
16
{
19
class
XmlClassesRegistry
20
{
21
private
:
22
const
std::string
tagname_
;
23
struct
TXMLData
24
{
25
rapidxml::xml_document<>
*
xml_doc
;
26
std::string*
xml_data
;
// Must be kept alloc'ed during the entire life
27
// of xml_doc!!
28
29
TXMLData
() :
xml_doc
(nullptr),
xml_data
(nullptr) {}
30
~TXMLData
()
31
{
32
if
(
xml_doc
)
delete
xml_doc
;
33
if
(
xml_data
)
delete
xml_data
;
34
}
35
};
36
std::map<std::string, TXMLData>
classes_
;
37
38
public
:
41
XmlClassesRegistry
(
const
std::string& xml_class_tag) :
tagname_
(xml_class_tag) {}
42
44
const
rapidxml::xml_node<char>
*
get
(
const
std::string& xml_node_class)
const
;
45
47
void
add
(
const
std::string& input_xml_node_class);
48
49
};
// end class
50
}
// namespace mvsim
mvsim
Definition:
Client.h:21
mvsim::XmlClassesRegistry::classes_
std::map< std::string, TXMLData > classes_
Definition:
XMLClassesRegistry.h:36
mvsim::XmlClassesRegistry::tagname_
const std::string tagname_
xml tag
Definition:
XMLClassesRegistry.h:22
mvsim::XmlClassesRegistry::XmlClassesRegistry
XmlClassesRegistry(const std::string &xml_class_tag)
Definition:
XMLClassesRegistry.h:41
mvsim::XmlClassesRegistry::get
const rapidxml::xml_node< char > * get(const std::string &xml_node_class) const
Definition:
XMLClassesRegistry.cpp:20
mvsim::XmlClassesRegistry::TXMLData::xml_doc
rapidxml::xml_document * xml_doc
Definition:
XMLClassesRegistry.h:25
mvsim::XmlClassesRegistry
Definition:
XMLClassesRegistry.h:19
mvsim::XmlClassesRegistry::TXMLData::~TXMLData
~TXMLData()
Definition:
XMLClassesRegistry.h:30
rapidxml::xml_document
Definition:
rapidxml.hpp:139
rapidxml::xml_node< char >
mvsim::XmlClassesRegistry::TXMLData::xml_data
std::string * xml_data
Definition:
XMLClassesRegistry.h:26
mvsim::XmlClassesRegistry::add
void add(const std::string &input_xml_node_class)
Definition:
XMLClassesRegistry.cpp:29
mvsim::XmlClassesRegistry::TXMLData::TXMLData
TXMLData()
Definition:
XMLClassesRegistry.h:29
rapidxml.hpp
mvsim::XmlClassesRegistry::TXMLData
Definition:
XMLClassesRegistry.h:23
mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:08