]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Settings.hh
initial network stuff
[chaz/yoink] / src / Moof / Settings.hh
index f7503dd7b8d1f34806b5ccce86a185ababdb3065..192e2a764254ba61a4b476a23c51c989422c1db8 100644 (file)
@@ -33,10 +33,13 @@ class Settings
 {
 public:
 
-       Settings()
+       Settings(int argc, char* argv[], const std::string& path)
        {
                mScript.importBaseLibrary();
                importLogFunctions(mScript);
+
+               parseArgs(argc, argv);
+               loadFromFiles(path);
        }
 
        ~Settings();
@@ -51,7 +54,7 @@ public:
        void saveAs(const std::string& path);
        void save() const;
 
-       template <typename T>
+       template <class T>
        bool get(const std::string& key, T& value) const;
 
 private:
@@ -62,11 +65,11 @@ private:
 };
 
 
-template <typename T>
+template <class T>
 bool Settings::get(const std::string& key, T& value) const
 {
        Script::Slot top = mScript[-1];
-       Script::Slot globals = mScript.getGlobalTable();
+       Script::Slot globals = mScript.globals();
 
        std::vector<std::string> fields;
        boost::split(fields, key, boost::is_any_of("."));
@@ -82,20 +85,17 @@ bool Settings::get(const std::string& key, T& value) const
                }
                else
                {
-                       mScript.clear();
+                       mScript.clearStack();
                        return false;
                }
        }
 
        bool got = top.get(value);
-       mScript.clear();
+       mScript.clearStack();
        return got;
 }
 
 
-extern Settings settings;
-
-
 } // namepsace Mf
 
 #endif // _MOOF_SETTINGS_HH_
This page took 0.017669 seconds and 4 git commands to generate.