Example #1
0
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();
}
Example #2
0
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;
}