64 for(
int i=1; i<n; i++)
68 std::string s = par[i];
70 std::string::size_type pos;
71 if ( (pos = s.find(
'=')) == std::string::npos )
72 throw std::runtime_error(
"Option Handler: bad option in "+std::string(par[0])+
" :"+s);
74 std::string key = s.substr(0,pos);
75 std::string value = s.substr(pos+1,std::string::npos);
79 int val_i = ::strtol(value.c_str(),&p,0);
87 double val_d = ::strtod(value.c_str(),&p);
88 if (val_d==0 || value.c_str()==p)
114 throw std::runtime_error(
"Unknown string parameter "+name);
127 throw std::runtime_error(
"Unknown integer parameter "+name);
141 throw std::runtime_error(
"Unknown double parameter "+name);
170 std::map<std::string,int>::const_iterator it1 =
i_options.begin();
171 c <<
"Integer parameters\n";
174 c <<
" "<<it1->first <<
" = " << it1->second << std::endl;
177 std::map<std::string,double>::const_iterator it2 =
d_options.begin();
178 c <<
"Double parameters\n";
181 c <<
" " << it2->first <<
" = " << it2->second << std::endl;
184 std::map<std::string,std::string>::const_iterator it3 =
s_options.begin();
185 c <<
"String parameters\n";
188 c <<
" "<<it3->first <<
" = " << it3->second << std::endl;
bool CheckParam(const std::string &name)
void Dump(std::ostream &c=std::cout)
static QOptionHandler * me
std::map< std::string, int > i_options
int GetIntParam(const std::string &name)
std::map< std::string, std::string > s_options
double GetRealParam(const std::string &name)
virtual ~QOptionHandler()
const std::string & GetStringParam(const std::string &name)
std::map< std::string, double > d_options
static QOptionHandler * Get()