diff options
Diffstat (limited to 'src/Common/XmlData.cpp')
-rw-r--r-- | src/Common/XmlData.cpp | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/src/Common/XmlData.cpp b/src/Common/XmlData.cpp index aa3fcdf..de9588a 100644 --- a/src/Common/XmlData.cpp +++ b/src/Common/XmlData.cpp @@ -29,13 +29,13 @@ namespace Mad { namespace Common { void XmlData::Element::updateStr() { - std::string typeStr; + Core::String typeStr; if(type == NONE) { str = ""; } else if(type == BINARY) { - str = Base64Encoder::encode(boost::get<std::vector<boost::uint8_t> >(value)); + str = Base64Encoder::encode(boost::get<std::vector<boost::uint8_t> >(value)).c_str(); typeStr = "binary"; } else if(type != STRING) { @@ -73,18 +73,18 @@ void XmlData::Element::updateStr() { break; } - str = buf.str(); + str = buf.str().c_str(); } else typeStr = "string"; - xmlNodePtr newNode = xmlNewText((xmlChar*)str.c_str()); + xmlNodePtr newNode = xmlNewText((xmlChar*)str.extractUTF8().c_str()); xmlNodePtr oldNode = elementNode->children; xmlReplaceNode(oldNode, newNode); xmlFreeNode(oldNode); - xmlSetProp(elementNode, (xmlChar*)"type", (xmlChar*)typeStr.c_str()); + xmlSetProp(elementNode, (xmlChar*)"type", (xmlChar*)typeStr.extractUTF8().c_str()); } XmlData::Element::Element(xmlNodePtr node) : elementNode(node), type(NONE) { @@ -101,13 +101,13 @@ XmlData::Element::Element(xmlNodePtr node) : elementNode(node), type(NONE) { return; } - str = (char*)content; - std::istringstream buf(str); + str = Core::String::fromUTF8((char*)content); + std::istringstream buf(str.extract()); if(!xmlStrcmp(typestr, (xmlChar*)"binary")) { type = BINARY; - value = Base64Encoder::decode(str); + value = Base64Encoder::decode(str.extract()); } else if(!xmlStrcmp(typestr, (xmlChar*)"int")) { type = INT; @@ -180,9 +180,9 @@ XmlData::Entry::Entry(xmlNodePtr node) : entryNode(node) { xmlChar *name = xmlGetProp(element, (xmlChar*)"name"); if(!xmlStrcmp(element->name, (xmlChar*)"list")) - lists.insert(std::make_pair(std::string((char*)name), new List(element))); + lists.insert(std::make_pair(Core::String::fromUTF8((char*)name), new List(element))); else if(!xmlStrcmp(element->name, (xmlChar*)"value")) - elements.insert(std::make_pair(std::string((char*)name), new Element(element))); + elements.insert(std::make_pair(Core::String::fromUTF8((char*)name), new Element(element))); xmlFree(name); } @@ -191,17 +191,17 @@ XmlData::Entry::Entry(xmlNodePtr node) : entryNode(node) { template <> -std::string XmlData::Entry::get<std::string>(const std::string &name) const { +Core::String XmlData::Entry::get<Core::String>(const Core::String &name) const { Element *element = getElement(name); if(!element) - return std::string(); + return Core::String(); return element->str; } template <> -const std::string& XmlData::Entry::get<const std::string&>(const std::string &name) const { - static std::string empty; +const Core::String& XmlData::Entry::get<const Core::String&>(const Core::String &name) const { + static const Core::String empty; Element *element = getElement(name); if(!element) @@ -211,7 +211,7 @@ const std::string& XmlData::Entry::get<const std::string&>(const std::string &na } template <> -std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(const std::string &name) const { +std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(const Core::String &name) const { Element *element = getElement(name); if(!element) return std::vector<boost::uint8_t>(); @@ -225,8 +225,8 @@ std::vector<boost::uint8_t> XmlData::Entry::get<std::vector<unsigned char> >(con } template <> -const std::vector<boost::uint8_t>& XmlData::Entry::get<const std::vector<unsigned char>&>(const std::string &name) const { - static std::vector<boost::uint8_t> empty; +const std::vector<boost::uint8_t>& XmlData::Entry::get<const std::vector<unsigned char>&>(const Core::String &name) const { + static const std::vector<boost::uint8_t> empty; Element *element = getElement(name); if(!element) @@ -290,18 +290,18 @@ XmlData& XmlData::operator=(const XmlData &o) { return *this; } -std::string XmlData::getType() const { +Core::String XmlData::getType() const { xmlChar *type = xmlGetProp(rootNode, (xmlChar*)"type"); - std::string ret(type ? (char*)type : ""); + Core::String ret(type ? Core::String::fromUTF8((char*)type) : ""); xmlFree(type); return ret; } -void XmlData::setType(const std::string &type) { - xmlSetProp(rootNode, (xmlChar*)"type", (xmlChar*)type.c_str()); +void XmlData::setType(const Core::String &type) { + xmlSetProp(rootNode, (xmlChar*)"type", (xmlChar*)type.extractUTF8().c_str()); } Net::Packet XmlData::toPacket(boost::uint16_t requestId) const { |