AVList * AVList::copyList (void) { AVList *pNew = new AVList (_uiCurrSize); for(unsigned int i = 0; i < _uiCurrSize; i++) { pNew->addPair (_pPair[i]._pszAttribute, _pPair[i]._pszValue); } return pNew; }
int MetadataConfigurationImpl::setMetadataFields (const char *pszXMLMetaDataValues) { const char *pszMethodName = "MetadataConfiguration::setMetadataFields"; if (pszXMLMetaDataValues == nullptr) { return -1; } TiXmlElement *pTxtField; TiXmlDocument xmlDoc; xmlDoc.Parse (pszXMLMetaDataValues); TiXmlElement *pRoot = xmlDoc.FirstChildElement (XML_METADATA_ELEMENT); if ((pRoot == nullptr) || ((pTxtField = pRoot->FirstChildElement (XML_FIELD_ELEMENT)) == nullptr)) { return -2; } AVList avlist; do { TiXmlElement *pTxtElement = pTxtField->FirstChildElement (XML_FIELD_NAME_ELEMENT); TiXmlElement *pTxtValue = pTxtField->FirstChildElement (XML_FIELD_VALUE_ELEMENT); if ((pTxtElement != nullptr) && (pTxtValue != nullptr)) { const String nameText (pTxtElement->GetText()); if (nameText.length() <= 0) { pTxtField = pTxtField->NextSiblingElement(); continue; } do { const String valueText (pTxtValue->GetText()); if (valueText.length() <= 0) { pTxtValue = pTxtValue->NextSiblingElement(); continue; } avlist.addPair (nameText, valueText); pTxtValue = pTxtValue->NextSiblingElement(); } while (pTxtValue != nullptr); pTxtField = pTxtField->NextSiblingElement(); } } while (pTxtField != nullptr); checkAndLogMsg (pszMethodName, Logger::L_Info, "AVList at the end is:\n"); for (unsigned int i = 0; i < avlist.getLength(); i++) { checkAndLogMsg (pszMethodName, Logger::L_Info, "Attribute[%d] = <%s>, Value[%d] = <%s>\n", i, avlist.getAttribute (i), i, avlist.getValueByIndex (i)); } return setupClassifierConfiguration (&avlist); }