Changes to config to allow everything (including 'children'
authorSteve Reinhardt <stever@eecs.umich.edu>
Mon, 5 Apr 2004 18:00:48 +0000 (11:00 -0700)
committerSteve Reinhardt <stever@eecs.umich.edu>
Mon, 5 Apr 2004 18:00:48 +0000 (11:00 -0700)
and 'type') to be specified via instance name and not just
config class.  Old code only did instance-name lookup for
SimObject parameters.  This feature makes life easier for
transitioning to the Python script-based config.

sim/builder.cc:
    Use ConfigNode::find to look for "type" parameter so it can
    be found if set under instance name (not config class).
sim/param.cc:
    Make Param<bool> accept "1" for true and "0" for false.

--HG--
extra : convert_revision : f40d0878d0f03b2e216f0506c05d0e52db608cca

sim/builder.cc
sim/param.cc

index e2345556ed6b8fe5a32e8c077aba2afd51bd389e..110c42f25bf7d9f62797d1341000b03c6c43d1a8 100644 (file)
@@ -32,6 +32,7 @@
 #include "base/misc.hh"
 #include "sim/builder.hh"
 #include "sim/configfile.hh"
+#include "sim/config_node.hh"
 #include "sim/host.hh"
 #include "sim/sim_object.hh"
 #include "sim/universe.hh"
@@ -153,7 +154,7 @@ SimObjectClass::createObject(IniFile &configDB,
     // (specified by 'type=' parameter)
     string simObjClassName;
 
-    if (!configDB.findDefault(configClassName, "type", simObjClassName)) {
+    if (!configNode->find("type", simObjClassName)) {
         cerr << "Configuration class '" << configClassName << "' not found."
              << endl;
         abort();
index 7affe47862b379f9ad2d60cf15d446403ea021b5..bb372f63139d905c5f349d6f6c453bc534fdbc5e 100644 (file)
@@ -147,14 +147,14 @@ template <>
 bool
 parseParam(const string &s, bool &value)
 {
-    const string &lower = to_lower(s);
+    const string &ls = to_lower(s);
 
-    if (lower == "true" || lower == "t" || lower == "yes" || lower == "y") {
+    if (ls == "true" || ls == "t" || ls == "yes" || ls == "y" || ls == "1") {
         value = true;
         return true;
     }
 
-    if (lower == "false" || lower == "f" || lower == "no" || lower == "n") {
+    if (ls == "false" || ls == "f" || ls == "no" || ls == "n" || ls == "0") {
         value = false;
         return true;
     }