/* Run sanity check on configuration table * The global table constructor cannot provide notification in the * event of failure. Make sure that we can access the database, * write to it, and that it contains the bare minimum required keys. */ bool testConfig() { int val = 9999; std::string test = "asldfkjsaldkf"; const char *key = "Log.Level"; /* Attempt to query */ try { gConfig.getStr(key); } catch (...) { std::cerr << std::endl; std::cerr << "Config: Failed query required key " << key << std::endl; return false; } /* Attempt to set a test value in the global config */ if (!gConfig.set(test, val)) { std::cerr << std::endl; std::cerr << "Config: Failed to set test key" << std::endl; return false; } else { gConfig.remove(test); } return true; }
int main(int argc, char *argv[]) { gConfig.setUpdateHook(purgeConfig); const char *keys[5] = {"key1", "key2", "key3", "key4", "key5"}; for (int i=0; i<5; i++) { gConfig.set(keys[i],i); } for (int i=0; i<5; i++) { cout << "table[" << keys[i] << "]=" << gConfig.getStr(keys[i]) << endl; cout << "table[" << keys[i] << "]=" << gConfig.getNum(keys[i]) << endl; } for (int i=0; i<5; i++) { cout << "defined table[" << keys[i] << "]=" << gConfig.defines(keys[i]) << endl; } gConfig.set("key5","100 200 300 400 "); std::vector<unsigned> vect = gConfig.getVector("key5"); cout << "vect length " << vect.size() << ": "; for (unsigned i=0; i<vect.size(); i++) cout << " " << vect[i]; cout << endl; std::vector<string> svect = gConfig.getVectorOfStrings("key5"); cout << "vect length " << svect.size() << ": "; for (unsigned i=0; i<svect.size(); i++) cout << " " << svect[i] << ":"; cout << endl; cout << "bool " << gConfig.getBool("booltest") << endl; gConfig.set("booltest",1); cout << "bool " << gConfig.getBool("booltest") << endl; gConfig.set("booltest",0); cout << "bool " << gConfig.getBool("booltest") << endl; gConfig.getStr("newstring"); gConfig.getNum("numnumber"); SimpleKeyValue pairs; pairs.addItems(" a=1 b=34 dd=143 "); cout<< pairs.get("a") << endl; cout<< pairs.get("b") << endl; cout<< pairs.get("dd") << endl; gConfig.set("fkey","123.456"); float fval = gConfig.getFloat("fkey"); cout << "fkey " << fval << endl; cout << "search fkey:" << endl; gConfig.find("fkey",cout); cout << "search fkey:" << endl; gConfig.find("fkey",cout); gConfig.remove("fkey"); cout << "search fkey:" << endl; gConfig.find("fkey",cout); try { gConfig.getNum("supposedtoabort"); } catch (ConfigurationTableKeyNotFound) { cout << "ConfigurationTableKeyNotFound exception successfully caught." << endl; } }