diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-09-27 19:58:24 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-09-27 19:58:24 +0200 |
commit | b40ba0cf91603b695f1f2380cbd39966a458f22f (patch) | |
tree | 1fec48ddc59eb1392fac38495b230e4b2cbf7528 /src/Common/XmlData.h | |
parent | e1d8490f0654a3da0b900407d80d91d8d0da68c8 (diff) | |
download | mad-b40ba0cf91603b695f1f2380cbd39966a458f22f.tar mad-b40ba0cf91603b695f1f2380cbd39966a458f22f.zip |
Use Unicode-aware String class instead of std::string
Diffstat (limited to 'src/Common/XmlData.h')
-rw-r--r-- | src/Common/XmlData.h | 83 |
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; } } |