Added a prefix data in eoParser - and the setPrefix method -
for multi-population parameter input. Now you can call the make_xxx functions from teh src/do directory several times for different populations provided you do different calls to setPrefix inbetween
This commit is contained in:
parent
fe9de42802
commit
87ddb6f8b5
2 changed files with 18 additions and 2 deletions
|
|
@ -125,7 +125,7 @@ eoParam* eoParser::getParamWithLongName(std::string _name)
|
||||||
typedef MultiMapType::const_iterator It;
|
typedef MultiMapType::const_iterator It;
|
||||||
for (It p = params.begin(); p != params.end(); ++p)
|
for (It p = params.begin(); p != params.end(); ++p)
|
||||||
{
|
{
|
||||||
if (p->second->longName() == _name)
|
if (p->second->longName() == prefix+_name)
|
||||||
return p->second;
|
return p->second;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -161,6 +161,13 @@ eoValueParam<ValueType>& eoParser::getORcreateParam (
|
||||||
|
|
||||||
void eoParser::processParam(eoParam& param, std::string section)
|
void eoParser::processParam(eoParam& param, std::string section)
|
||||||
{
|
{
|
||||||
|
// this param enters the parser: add the prefix to the long name
|
||||||
|
if (prefix != "")
|
||||||
|
{
|
||||||
|
param.setLongName(prefix+param.longName());
|
||||||
|
section = prefix + section; // and to section
|
||||||
|
}
|
||||||
|
|
||||||
doRegisterParam(param); // plainly register it
|
doRegisterParam(param); // plainly register it
|
||||||
params.insert(make_pair(section, ¶m));
|
params.insert(make_pair(section, ¶m));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
*/
|
*/
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
CVS Info: $Date: 2003-02-27 19:21:17 $ $Version$ $Author: okoenig $
|
CVS Info: $Date: 2004-04-05 15:28:12 $ $Version$ $Author: evomarc $
|
||||||
*/
|
*/
|
||||||
#ifndef eoParser_h
|
#ifndef eoParser_h
|
||||||
#define eoParser_h
|
#define eoParser_h
|
||||||
|
|
@ -189,6 +189,12 @@ public:
|
||||||
void setStopOnUnknownParam(bool _b) {stopOnUnknownParam.value()=_b;}
|
void setStopOnUnknownParam(bool _b) {stopOnUnknownParam.value()=_b;}
|
||||||
bool getStopOnUnknownParam() {return stopOnUnknownParam.value();}
|
bool getStopOnUnknownParam() {return stopOnUnknownParam.value();}
|
||||||
|
|
||||||
|
/** Prefix handling */
|
||||||
|
void setPrefix(const std:: string & _prefix) {prefix = _prefix;}
|
||||||
|
|
||||||
|
void resetPrefix() {prefix = "";}
|
||||||
|
|
||||||
|
std::string getPrefix() {return prefix;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
@ -216,6 +222,9 @@ private:
|
||||||
eoValueParam<bool> stopOnUnknownParam;
|
eoValueParam<bool> stopOnUnknownParam;
|
||||||
|
|
||||||
mutable std::vector<std::string> messages;
|
mutable std::vector<std::string> messages;
|
||||||
|
|
||||||
|
std::string prefix; // used for all created params - in processParam
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Reference in a new issue