summaryrefslogtreecommitdiff
path: root/lib/common/Configuration.h
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2008-08-21 10:59:26 +0000
committerChris Wilson <chris+github@qwirx.com>2008-08-21 10:59:26 +0000
commit9a18ee94ab13ede233930c59d5d958d94fb5d256 (patch)
treec3022cdc63ae7037fb2c7b3f2005421f28015b27 /lib/common/Configuration.h
parentc18b8cb248faea94350103cfdb0ede383df801ca (diff)
Allow constructing Configuration objects from scratch (for Boxi).
Add a separate Verify() method.
Diffstat (limited to 'lib/common/Configuration.h')
-rw-r--r--lib/common/Configuration.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/common/Configuration.h b/lib/common/Configuration.h
index 80b3614b..2babd753 100644
--- a/lib/common/Configuration.h
+++ b/lib/common/Configuration.h
@@ -88,9 +88,8 @@ class FdGetLine;
// --------------------------------------------------------------------------
class Configuration
{
-private:
- Configuration(const std::string &rName);
public:
+ Configuration(const std::string &rName);
Configuration(const Configuration &rToCopy);
~Configuration();
@@ -118,18 +117,28 @@ public:
bool SubConfigurationExists(const std::string& rSubName) const;
const Configuration &GetSubConfiguration(const std::string& rSubName) const;
+ Configuration &GetSubConfigurationEditable(const std::string& rSubName);
std::vector<std::string> GetSubConfigurationNames() const;
+ void AddKeyValue(const std::string& rKey, const std::string& rValue);
+ void AddSubConfig(const std::string& rName, const Configuration& rSubConfig);
+
+ bool Verify(const ConfigurationVerify &rVerify, std::string &rErrorMsg)
+ {
+ return Verify(rVerify, std::string(), rErrorMsg);
+ }
+
+private:
std::string mName;
+ // Order of keys not preserved
+ std::map<std::string, std::string> mKeys;
// Order of sub blocks preserved
typedef std::list<std::pair<std::string, Configuration> > SubConfigListType;
SubConfigListType mSubConfigurations;
- // Order of keys, not preserved
- std::map<std::string, std::string> mKeys;
-private:
static bool LoadInto(Configuration &rConfig, FdGetLine &rGetLine, std::string &rErrorMsg, bool RootLevel);
- static bool Verify(Configuration &rConfig, const ConfigurationVerify &rVerify, const std::string &rLevel, std::string &rErrorMsg);
+ bool Verify(const ConfigurationVerify &rVerify, const std::string &rLevel,
+ std::string &rErrorMsg);
};
#endif // CONFIGURATION__H