bool WizXmlRpcArrayValue::read(WizXMLNode& nodeValue) { WizXMLNode nodeData; if (!nodeValue.findNodeByPath("array/data", nodeData)) { TOLOG("Failed to get array data node!"); return false; } std::deque<WizXMLNode> arrayValue; nodeData.getAllChildNodes(arrayValue); std::deque<WizXMLNode>::iterator it; for (it = arrayValue.begin(); it != arrayValue.end(); it++) { WizXMLNode& nodeElementValue = *it; WizXmlRpcValue* pElementValue = NULL; if (!WizXmlRpcValueFromXml(nodeElementValue, &pElementValue)) { TOLOG("Failed to load array element value from node!"); return false; } Q_ASSERT(pElementValue); add(pElementValue); } return true; }
BOOL CWizXmlRpcArrayValue::Read(CWizXMLNode& nodeValue) { CWizXMLNode nodeData; if (!nodeValue.FindNodeByPath(_T("array/data"), nodeData)) { TOLOG(_T("Failed to get array data node!")); return FALSE; } // std::deque<CWizXMLNode> arrayValue; nodeData.GetAllChildNodes(arrayValue); // for (std::deque<CWizXMLNode>::iterator it = arrayValue.begin(); it != arrayValue.end(); it++) { CWizXMLNode& nodeElementValue = *it; // CWizXmlRpcValue* pElementValue = NULL; if (!WizXmlRpcValueFromXml(nodeElementValue, &pElementValue )) { TOLOG(_T("Failed to load array element value from node!")); return FALSE; } // ATLASSERT(pElementValue); // Add(pElementValue); } // return TRUE; }
bool WizXmlRpcResultFromXml(WizXMLDocument& doc, WizXmlRpcValue** ppRet) { WizXMLNode nodeMethodResponse; doc.findChildNode("methodResponse", nodeMethodResponse); if (nodeMethodResponse.isNull()) { TOLOG("Failed to get methodResponse node!"); return false; } WizXMLNode nodeTest; if (!nodeMethodResponse.getFirstChildNode(nodeTest)) { TOLOG("Failed to get methodResponse child node!"); return false; } QString strTestName = nodeTest.getName(); if (0 == strTestName.compare("params", Qt::CaseInsensitive)) { WizXMLNode nodeParamValue; nodeTest.findNodeByPath("param/value", nodeParamValue); if (nodeParamValue.isNull()) { TOLOG("Failed to get param value node of params!"); return false; } return WizXmlRpcValueFromXml(nodeParamValue, ppRet); } else if (0 == strTestName.compare("fault", Qt::CaseInsensitive)) { WizXMLNode nodeFaultValue; nodeTest.findChildNode("value", nodeFaultValue); if (nodeFaultValue.isNull()) { TOLOG("Failed to get fault value node!"); return false; } WizXmlRpcFaultValue* pFault = new WizXmlRpcFaultValue(); pFault->read(nodeFaultValue); *ppRet = pFault; return true; } else { TOLOG1("Unknown response node name: %1", strTestName); return false; } }
bool WizXmlRpcResultFromXml(CWizXMLDocument& doc, CWizXmlRpcValue** ppRet) { CWizXMLNode nodeMethodResponse; doc.FindChildNode("methodResponse", nodeMethodResponse); if (nodeMethodResponse.isNull()) { TOLOG("Failed to get methodResponse node!"); return false; } CWizXMLNode nodeTest; if (!nodeMethodResponse.GetFirstChildNode(nodeTest)) { TOLOG("Failed to get methodResponse child node!"); return false; } CString strTestName = nodeTest.GetName(); if (0 == strTestName.CompareNoCase("params")) { CWizXMLNode nodeParamValue; nodeTest.FindNodeByPath("param/value", nodeParamValue); if (nodeParamValue.isNull()) { TOLOG("Failed to get param value node of params!"); return false; } return WizXmlRpcValueFromXml(nodeParamValue, ppRet); } else if (0 == strTestName.CompareNoCase("fault")) { CWizXMLNode nodeFaultValue; nodeTest.FindChildNode(_T("value"), nodeFaultValue); if (nodeFaultValue.isNull()) { TOLOG("Failed to get fault value node!"); return false; } CWizXmlRpcFaultValue* pFault = new CWizXmlRpcFaultValue(); pFault->Read(nodeFaultValue); *ppRet = pFault; return true; } else { TOLOG1("Unknown response node name: %1", strTestName); return false; } }
bool CWizXmlRpcStructValue::Read(CWizXMLNode& nodeValue) { CWizXMLNode nodeStruct; if (!nodeValue.FindChildNode(_T("struct"), nodeStruct)) { TOLOG(_T("Failed to get struct node!")); return FALSE; } // std::deque<CWizXMLNode> arrayMember; nodeStruct.GetAllChildNodes(arrayMember); // for (std::deque<CWizXMLNode>::iterator it = arrayMember.begin(); it != arrayMember.end(); it++) { CWizXMLNode& nodeMember = *it; // CString strName; if (!nodeMember.GetChildNodeText(_T("name"), strName)) { TOLOG(_T("Failed to get struct member name!")); return FALSE; } // CWizXMLNode nodeMemberValue; if (!nodeMember.FindChildNode(_T("value"), nodeMemberValue)) { TOLOG(_T("Failed to get struct member value!")); return FALSE; } // CWizXmlRpcValue* pMemberValue = NULL; if (!WizXmlRpcValueFromXml(nodeMemberValue, &pMemberValue)) { TOLOG(_T("Failed to load struct member value from node!")); return FALSE; } // ATLASSERT(pMemberValue); // AddValue(strName, pMemberValue); } // return TRUE; }
bool WizXmlRpcStructValue::read(WizXMLNode& nodeValue) { WizXMLNode nodeStruct; if (!nodeValue.findChildNode("struct", nodeStruct)) { TOLOG("Failed to get struct node!"); return false; } std::deque<WizXMLNode> arrayMember; nodeStruct.getAllChildNodes(arrayMember); std::deque<WizXMLNode>::iterator it; for (it = arrayMember.begin(); it != arrayMember.end(); it++) { WizXMLNode& nodeMember = *it; QString strName; if (!nodeMember.getChildNodeText("name", strName)) { TOLOG("Failed to get struct member name!"); return false; } WizXMLNode nodeMemberValue; if (!nodeMember.findChildNode("value", nodeMemberValue)) { TOLOG("Failed to get struct member value!"); return false; } WizXmlRpcValue* pMemberValue = NULL; if (!WizXmlRpcValueFromXml(nodeMemberValue, &pMemberValue)) { TOLOG("Failed to load struct member value from node!"); return false; } Q_ASSERT(pMemberValue); addValue(strName, pMemberValue); } return true; }