void Configuration::setConfigSetting(string sectionName, string settingName, string settingValue) { TiXmlElement* setting = findConfigSetting(sectionName, settingName); if (setting) { TiXmlText* settingText = setting->ToText(); if (settingText) settingText->SetValue(settingValue); } else { // Check to see if the section exists TiXmlHandle docHandle(&configs); TiXmlElement* newSection = docHandle.FirstChild("osdb").FirstChild(sectionName).ToElement(); if (!newSection) { newSection = new TiXmlElement(sectionName); configs.RootElement()->LinkEndChild(newSection); } TiXmlElement* newSettingElement = new TiXmlElement(settingName); newSettingElement->LinkEndChild(new TiXmlText(settingValue)); newSection->LinkEndChild(newSettingElement); } saveConfig(); }
bool cAlarmServer::loadAlarmDefinitions(const UtlString& alarmFile) { OsSysLog::add(FAC_ALARM, PRI_DEBUG, "Loading alarm def file '%s'", alarmFile.data()); TiXmlDocument doc(alarmFile); TiXmlHandle docHandle( &doc ); if (!doc.LoadFile()) { UtlString errorMsg; XmlErrorMsg( doc, errorMsg ); OsSysLog::add(FAC_ALARM, PRI_ERR, "Failed to load alarm file: %s", errorMsg.data()); return false; } TiXmlHandle docH( &doc ); //load alarm definitions TiXmlElement* alarmDefElement = docH.FirstChildElement("alarm_server"). FirstChildElement("definitions").Element(); if (alarmDefElement) { TiXmlElement* element = alarmDefElement->FirstChildElement(); cAlarmData* pAlarmData; for (; element; element=element->NextSiblingElement() ) { pAlarmData = new cAlarmData(); if (loadAlarmData(element, pAlarmData)) { UtlString* idStr = new UtlString(pAlarmData->getId()); if (!mAlarmMap.insertKeyAndValue(idStr, pAlarmData)) { OsSysLog::add(FAC_ALARM, PRI_ERR, "Alarm id '%s' is already defined", pAlarmData->getId().data()); delete pAlarmData; } } else { OsSysLog::add(FAC_ALARM, PRI_ERR, "Alarm element '%s' is incorrectly defined", (char *)element->ToText()); delete pAlarmData; } } } return true; }