summaryrefslogtreecommitdiff
path: root/indra/llcommon/llsd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon/llsd.cpp')
-rw-r--r--indra/llcommon/llsd.cpp147
1 files changed, 0 insertions, 147 deletions
diff --git a/indra/llcommon/llsd.cpp b/indra/llcommon/llsd.cpp
index 2bbe06e72f..77fe545c3f 100644
--- a/indra/llcommon/llsd.cpp
+++ b/indra/llcommon/llsd.cpp
@@ -1018,153 +1018,6 @@ const LLSD::String& LLSD::asStringRef() const { return safe(impl).asStringRef();
LLSD::String LLSD::asXMLRPCValue() const { return "<value>" + safe(impl).asXMLRPCValue() + "</value>"; }
-static bool inline check(bool condition, const char* warning_message)
-{
- if (!condition)
- {
- LL_WARNS() << warning_message << LL_ENDL;
- }
-
- return condition;
-}
-
-static bool parseXMLRPCArrayValue(LLSD& target, LLSD::TreeNode* node)
-{
- LLSD::TreeNode* data = node->getFirstChild();
- if (!check(data, "No array inner XML element (<data> expected)") ||
- !check(data->hasName("data"), "Invalid array inner XML element (<data> expected)") ||
- !check(!data->getNextSibling(), "Multiple array inner XML elements (single <data> expected)"))
- return false;
-
- for (LLSD::TreeNode* item = data->getFirstChild(); item; item = item->getNextSibling())
- {
- LLSD value;
- if (!value.fromXMLRPCValue(item))
- return false;
-
- target.append(value);
- }
-
- return true;
-}
-
-static bool parseXMLRPCStructValue(LLSD& target, LLSD::TreeNode* node)
-{
- for (LLSD::TreeNode* item = node->getFirstChild(); item; item = item->getNextSibling())
- {
- if (!check(item->hasName("member"), "Invalid struct inner XML element (<member> expected)"))
- return false;
-
- std::string name;
- LLSD value;
- for (LLSD::TreeNode* subitem = item->getFirstChild(); subitem; subitem = subitem->getNextSibling())
- {
- if (subitem->hasName("name"))
- {
- name = LLStringFn::xml_decode(subitem->getTextContents());
- }
- else if (!value.fromXMLRPCValue(subitem))
- {
- return false;
- }
- }
- if (!check(!name.empty(), "Empty struct member name"))
- return false;
-
- target.insert(name, value);
- }
-
- return true;
-}
-
-bool LLSD::fromXMLRPCValue(TreeNode* node)
-{
- clear();
-
- llassert(node);
- if (!node)
- return false;
-
- if (!check(node->hasName("value"), "Invalid XML element (<value> expected)"))
- return false;
-
- TreeNode* inner = node->getFirstChild();
- if (!inner)
- {
- check(false, "No inner XML element (value type expected)");
- // Value with no type qualifier is treated as string
- assign(LLStringFn::xml_decode(node->getTextContents()));
- return true;
- }
-
- if (!check(!inner->getNextSibling(), "Multiple inner XML elements (single expected)"))
- return false;
-
- if (inner->hasName("string"))
- {
- assign(LLStringFn::xml_decode(inner->getTextContents()));
- return true;
- }
-
- if (inner->hasName("int") || inner->hasName("i4"))
- {
- assign(std::stoi(inner->getTextContents()));
- return true;
- }
-
- if (inner->hasName("double"))
- {
- assign(std::stod(inner->getTextContents()));
- return true;
- }
-
- if (inner->hasName("boolean"))
- {
- assign(!!std::stoi(inner->getTextContents()));
- return true;
- }
-
- if (inner->hasName("dateTime.iso8601"))
- {
- assign(Date(inner->getTextContents()));
- return true;
- }
-
- if (inner->hasName("base64"))
- {
- std::string decoded = LLBase64::decodeAsString(inner->getTextContents());
- Binary binary(decoded.size());
- memcpy(binary.data(), decoded.data(), decoded.size());
- assign(binary);
- return true;
- }
-
- if (inner->hasName("array"))
- {
- if (!parseXMLRPCArrayValue(*this, inner))
- {
- clear();
- return false;
- }
- return true;
- }
-
- if (inner->hasName("struct"))
- {
- if (!parseXMLRPCStructValue(*this, inner))
- {
- clear();
- return false;
- }
- return true;
- }
-
- check(false, "Unknown inner XML element (known value type expected)");
- // Value with unknown type qualifier is treated as string
- assign(LLStringFn::xml_decode(inner->getTextContents()));
- return true;
-}
-
// const char * helpers
LLSD::LLSD(const char* v) : impl(0) { ALLOC_LLSD_OBJECT; assign(v); }
void LLSD::assign(const char* v)