--- a/src/common/rclconfig.cpp
+++ b/src/common/rclconfig.cpp
@@ -343,26 +343,48 @@
return false;
return stringToStrings(s, *svvp);
}
-bool RclConfig::getConfParam(const string &name, list<string> *svvp) const
-{
- if (!svvp)
- return false;
- svvp->clear();
- string s;
- if (!getConfParam(name, s))
- return false;
- return stringToStrings(s, *svvp);
-}
-
-list<string> RclConfig::getTopdirs() const
-{
- list<string> tdl;
+
+bool RclConfig::getConfParam(const string &name, vector<int> *vip) const
+{
+ if (!vip)
+ return false;
+ vip->clear();
+ vector<string> vs;
+ if (!getConfParam(name, &vs))
+ return false;
+ vip->reserve(vs.size());
+ for (unsigned int i = 0; i < vs.size(); i++) {
+ char *ep;
+ vip->push_back(strtol(vs[i].c_str(), &ep, 0));
+ if (ep == vs[i].c_str()) {
+ LOGDEB(("RclConfig::getConfParam: bad int value in [%s]\n",
+ name.c_str()));
+ return false;
+ }
+ }
+ return true;
+}
+
+pair<int,int> RclConfig::getThrConf(ThrStage who) const
+{
+ vector<int> vq;
+ vector<int> vt;
+ if (!getConfParam("thrQSizes", &vq) || !getConfParam("thrTCounts", &vt)) {
+ return pair<int,int>(-1,-1);
+ }
+ return pair<int,int>(vq[who], vt[who]);
+}
+
+vector<string> RclConfig::getTopdirs() const
+{
+ vector<string> tdl;
if (!getConfParam("topdirs", &tdl)) {
- LOGERR(("RclConfig::getTopdirs: no top directories in config or bad list format\n"));
+ LOGERR(("RclConfig::getTopdirs: no top directories in config or "
+ "bad list format\n"));
return tdl;
}
- for (list<string>::iterator it = tdl.begin(); it != tdl.end(); it++) {
+ for (vector<string>::iterator it = tdl.begin(); it != tdl.end(); it++) {
*it = path_tildexpand(*it);
*it = path_canon(*it);
}