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 {
20 {
21  private:
22  const std::string tagname_;
23  struct TXMLData
24  {
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) {}
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