int ConfigurationXML::parse(const char* configurationXML) { mxml_node_t *tree, *node; int ret; tree = mxmlLoadString(NULL, configurationXML, MXML_NO_CALLBACK); node = mxmlGetFirstChild(tree); while (node && mxmlGetType(node) != MXML_ELEMENT) node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); ret = configurationsTag(node); node = mxmlGetFirstChild(node); while (node) { if (mxmlGetType(node) != MXML_ELEMENT) { node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); continue; } configurationTag(node); node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); } mxmlDelete(tree); return ret; }
int ConfigurationXML::parse(const char* configurationXML) { mxml_node_t *tree, *node; int ret; // clear counter overflow gSessionData->mCounterOverflow = 0; mIndex = 0; // disable all counters prior to parsing the configuration xml for (int i = 0; i < MAX_PERFORMANCE_COUNTERS; i++) { gSessionData->mCounters[i].setEnabled(false); } tree = mxmlLoadString(NULL, configurationXML, MXML_NO_CALLBACK); node = mxmlGetFirstChild(tree); while (node && mxmlGetType(node) != MXML_ELEMENT) node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); ret = configurationsTag(node); node = mxmlGetFirstChild(node); while (node) { if (mxmlGetType(node) != MXML_ELEMENT) { node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); continue; } configurationTag(node); node = mxmlWalkNext(node, tree, MXML_NO_DESCEND); } mxmlDelete(tree); return ret; }