summaryrefslogtreecommitdiffstats
path: root/src/Common/XmlData.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/XmlData.cpp')
-rw-r--r--src/Common/XmlData.cpp42
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 {