⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlparameterlist.cpp

📁 利用C
💻 CPP
字号:
// Copyright (C) 2004-2006 Anders Logg.// Licensed under the GNU LGPL Version 2.1.//// First added:  2004-03-31// Last changed: 2006-05-23#include <stdlib.h>#include <dolfin/log/dolfin_log.h>#include <dolfin/parameter/ParameterList.h>#include "XMLParameterList.h"using namespace dolfin;//-----------------------------------------------------------------------------XMLParameterList::XMLParameterList(ParameterList& parameters)  : XMLObject(), parameters(parameters){  state = OUTSIDE;}//-----------------------------------------------------------------------------void XMLParameterList::startElement(const xmlChar *name, const xmlChar **attrs){  switch ( state )  {  case OUTSIDE:        if ( xmlStrcasecmp(name,(xmlChar *) "parameters") == 0 )      state = INSIDE_PARAMETERS;        break;  case INSIDE_PARAMETERS:    if ( xmlStrcasecmp(name,(xmlChar *) "parameter") == 0 )      readParameter(name,attrs);        break;      default:    ;  }}//-----------------------------------------------------------------------------void XMLParameterList::endElement(const xmlChar *name){  switch ( state )  {  case INSIDE_PARAMETERS:        if ( xmlStrcasecmp(name,(xmlChar *) "parameters") == 0 )    {      state = DONE;    }        break;      default:    ;  }}//-----------------------------------------------------------------------------void XMLParameterList::open(std::string filename){  // Do nothing}//-----------------------------------------------------------------------------bool XMLParameterList::close(){  return state == DONE;}//-----------------------------------------------------------------------------void XMLParameterList::readParameter(const xmlChar *name, const xmlChar **attrs){  // Parse values  std::string pname  = parseString(name, attrs, "name");  std::string ptype  = parseString(name, attrs, "type");  std::string pvalue = parseString(name, attrs, "value");  // Set parameter  if ( ptype == "real" )  {    real val = atof(pvalue.c_str());    parameters.set(pname.c_str(), val);  }  else if ( ptype == "int" )  {    int val = atoi(pvalue.c_str());    parameters.set(pname.c_str(), val);  }  else if ( ptype == "bool" )  {    if ( pvalue == "true" )      parameters.set(pname.c_str(), true);    else if ( pvalue == "false" )      parameters.set(pname.c_str(), false);    else      warning("Illegal value for boolean parameter: %s.", pname.c_str());  }  else if ( ptype == "string" )  {    parameters.set(pname.c_str(), pvalue.c_str());  }  else    warning("Illegal parameter type: %s", ptype.c_str());}//-----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -