summaryrefslogtreecommitdiffstats
path: root/src/Common/XmlData.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/XmlData.h')
-rw-r--r--src/Common/XmlData.h83
1 files changed, 41 insertions, 42 deletions
diff --git a/src/Common/XmlData.h b/src/Common/XmlData.h
index b7e8ec1..1861b71 100644
--- a/src/Common/XmlData.h
+++ b/src/Common/XmlData.h
@@ -27,7 +27,6 @@
#include <map>
#include <set>
-#include <string>
#include <sstream>
#include <vector>
@@ -69,7 +68,7 @@ class MAD_COMMON_EXPORT XmlData {
Type type;
Variant value;
- std::string str;
+ Core::String str;
void updateStr();
@@ -119,7 +118,7 @@ class MAD_COMMON_EXPORT XmlData {
set(val, LONGDOUBLE);
}
- void set(const std::string &val) {
+ void set(const Core::String &val) {
type = STRING;
value = Element::Variant();
str = val;
@@ -139,11 +138,11 @@ class MAD_COMMON_EXPORT XmlData {
xmlNodePtr entryNode;
- std::map<std::string, Element*> elements;
- std::map<std::string, List*> lists;
+ std::map<Core::String, Element*> elements;
+ std::map<Core::String, List*> lists;
- Element* getElement(const std::string &name) {
- std::map<std::string, Element*>::iterator element = elements.find(name);
+ Element* getElement(const Core::String &name) {
+ std::map<Core::String, Element*>::iterator element = elements.find(name);
if(element != elements.end())
return element->second;
@@ -152,7 +151,7 @@ class MAD_COMMON_EXPORT XmlData {
return 0;
xmlNodePtr newNode = xmlNewTextChild(entryNode, 0, (xmlChar*)"value", (xmlChar*)"");
- xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.c_str());
+ xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.extractUTF8().c_str());
xmlSetProp(newNode, (xmlChar*)"type", (xmlChar*)"");
Element* newElement = new Element(newNode);
@@ -162,8 +161,8 @@ class MAD_COMMON_EXPORT XmlData {
return newElement;
}
- Element* getElement(const std::string &name) const {
- std::map<std::string, Element*>::const_iterator element = elements.find(name);
+ Element* getElement(const Core::String &name) const {
+ std::map<Core::String, Element*>::const_iterator element = elements.find(name);
if(element != elements.end())
return element->second;
@@ -173,16 +172,16 @@ class MAD_COMMON_EXPORT XmlData {
Entry(xmlNodePtr node);
~Entry() {
- for(std::map<std::string, Element*>::iterator element = elements.begin(); element != elements.end(); ++element)
+ for(std::map<Core::String, Element*>::iterator element = elements.begin(); element != elements.end(); ++element)
delete element->second;
- for(std::map<std::string, List*>::iterator list = lists.begin(); list != lists.end(); ++list)
+ for(std::map<Core::String, List*>::iterator list = lists.begin(); list != lists.end(); ++list)
delete list->second;
}
public:
template <typename T>
- bool set(const std::string &name, T val) {
+ bool set(const Core::String &name, T val) {
Element *element = getElement(name);
if(!element)
return false;
@@ -193,7 +192,7 @@ class MAD_COMMON_EXPORT XmlData {
}
template <typename T>
- T get(const std::string &name) const {
+ T get(const Core::String &name) const {
Element *element = getElement(name);
if(!element)
return T();
@@ -218,8 +217,8 @@ class MAD_COMMON_EXPORT XmlData {
}
}
- List* createList(const std::string &name, bool unique = false) {
- std::map<std::string, List*>::iterator list = lists.find(name);
+ List* createList(const Core::String &name, bool unique = false) {
+ std::map<Core::String, List*>::iterator list = lists.find(name);
if(list != lists.end())
return unique ? 0 : list->second;
@@ -228,7 +227,7 @@ class MAD_COMMON_EXPORT XmlData {
return 0;
xmlNodePtr newNode = xmlNewChild(entryNode, 0, (xmlChar*)"list", 0);
- xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.c_str());
+ xmlSetProp(newNode, (xmlChar*)"name", (xmlChar*)name.extractUTF8().c_str());
List *newList = new List(newNode);
@@ -237,8 +236,8 @@ class MAD_COMMON_EXPORT XmlData {
return newList;
}
- List* getList(const std::string &name) {
- std::map<std::string, List*>::iterator list = lists.find(name);
+ List* getList(const Core::String &name) {
+ std::map<Core::String, List*>::iterator list = lists.find(name);
if(list == lists.end())
return 0;
@@ -246,8 +245,8 @@ class MAD_COMMON_EXPORT XmlData {
return list->second;
}
- const List* getList(const std::string &name) const {
- std::map<std::string, List*>::const_iterator list = lists.find(name);
+ const List* getList(const Core::String &name) const {
+ std::map<Core::String, List*>::const_iterator list = lists.find(name);
if(list == lists.end())
return 0;
@@ -255,8 +254,8 @@ class MAD_COMMON_EXPORT XmlData {
return list->second;
}
- void unset(const std::string &name) {
- std::map<std::string, Element*>::iterator element = elements.find(name);
+ void unset(const Core::String &name) {
+ std::map<Core::String, Element*>::iterator element = elements.find(name);
if(element != elements.end()) {
xmlUnlinkNode(element->second->elementNode);
@@ -269,7 +268,7 @@ class MAD_COMMON_EXPORT XmlData {
return;
}
- std::map<std::string, List*>::iterator list = lists.find(name);
+ std::map<Core::String, List*>::iterator list = lists.find(name);
if(list != lists.end()) {
xmlUnlinkNode(list->second->elementNode);
@@ -285,19 +284,19 @@ class MAD_COMMON_EXPORT XmlData {
return;
}
- std::set<std::string> getChildren() const {
- std::set<std::string> childNames;
+ std::set<Core::String> getChildren() const {
+ std::set<Core::String> childNames;
- for(std::map<std::string, Element*>::const_iterator it = elements.begin(); it != elements.end(); ++it)
+ for(std::map<Core::String, Element*>::const_iterator it = elements.begin(); it != elements.end(); ++it)
childNames.insert(it->first);
return childNames;
}
- std::set<std::string> getLists() const {
- std::set<std::string> listNames;
+ std::set<Core::String> getLists() const {
+ std::set<Core::String> listNames;
- for(std::map<std::string, List*>::const_iterator it = lists.begin(); it != lists.end(); ++it)
+ for(std::map<Core::String, List*>::const_iterator it = lists.begin(); it != lists.end(); ++it)
listNames.insert(it->first);
return listNames;
@@ -468,32 +467,32 @@ class MAD_COMMON_EXPORT XmlData {
xmlFreeDoc(doc);
}
- std::string getType() const;
- void setType(const std::string &type);
+ Core::String getType() const;
+ void setType(const Core::String &type);
template <typename T>
- bool set(const std::string &name, T val) {
+ bool set(const Core::String &name, T val) {
return entry->set(name, val);
}
template <typename T>
- T get(const std::string &name) const {
+ T get(const Core::String &name) const {
return entry->get<T>(name);
}
- List* createList(const std::string &name, bool unique = false) {
+ List* createList(const Core::String &name, bool unique = false) {
return entry->createList(name, unique);
}
- List* getList(const std::string &name) {
+ List* getList(const Core::String &name) {
return entry->getList(name);
}
- const List* getList(const std::string &name) const {
+ const List* getList(const Core::String &name) const {
return entry->getList(name);
}
- void unset(const std::string &name) {
+ void unset(const Core::String &name) {
entry->unset(name);
}
@@ -502,11 +501,11 @@ class MAD_COMMON_EXPORT XmlData {
void toFile(const std::string &filename) const throw (Core::Exception);
};
-template <> MAD_COMMON_EXPORT std::string XmlData::Entry::get<std::string>(const std::string &name) const;
-template <> MAD_COMMON_EXPORT const std::string& XmlData::Entry::get<const std::string&>(const std::string &name) const;
+template <> MAD_COMMON_EXPORT Core::String XmlData::Entry::get<Core::String>(const Core::String &name) const;
+template <> MAD_COMMON_EXPORT const Core::String& XmlData::Entry::get<const Core::String&>(const Core::String &name) const;
-template <> MAD_COMMON_EXPORT std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(const std::string &name) const;
-template <> MAD_COMMON_EXPORT const std::vector<boost::uint8_t>& XmlData::Entry::get<const std::vector<unsigned char>&>(const std::string &name) const;
+template <> MAD_COMMON_EXPORT std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(const Core::String &name) const;
+template <> MAD_COMMON_EXPORT const std::vector<boost::uint8_t>& XmlData::Entry::get<const std::vector<unsigned char>&>(const Core::String &name) const;
}
}