diff options
Diffstat (limited to 'node')
| -rw-r--r-- | node/NodeConfig.cpp | 23 | ||||
| -rw-r--r-- | node/NodeConfig.hpp | 18 |
2 files changed, 41 insertions, 0 deletions
diff --git a/node/NodeConfig.cpp b/node/NodeConfig.cpp index ea2b5946..777b596b 100644 --- a/node/NodeConfig.cpp +++ b/node/NodeConfig.cpp @@ -118,6 +118,29 @@ NodeConfig::~NodeConfig() _writeLocalConfig(); } +void NodeConfig::putLocalConfig(const std::string &key,const char *value) +{ + Mutex::Lock _l(_localConfig_m); + _localConfig[key] = value; + _writeLocalConfig(); +} + +void NodeConfig::putLocalConfig(const std::string &key,const std::string &value) +{ + Mutex::Lock _l(_localConfig_m); + _localConfig[key] = value; + _writeLocalConfig(); +} + +std::string NodeConfig::getLocalConfig(const std::string &key) const +{ + Mutex::Lock _l(_localConfig_m); + Dictionary::const_iterator i(_localConfig.find(key)); + if (i == _localConfig.end()) + return std::string(); + return i->second; +} + void NodeConfig::clean() { Mutex::Lock _l(_networks_m); diff --git a/node/NodeConfig.hpp b/node/NodeConfig.hpp index d7a3984a..164bd891 100644 --- a/node/NodeConfig.hpp +++ b/node/NodeConfig.hpp @@ -69,6 +69,24 @@ public: ~NodeConfig(); /** + * Store something in local configuration cache + * + * By convention, keys starting with _ will not be shown in the command bus + * local config functions. + * + * @param key Configuration key + * @param value Configuration value + */ + void putLocalConfig(const std::string &key,const char *value); + void putLocalConfig(const std::string &key,const std::string &value); + + /** + * @param key Configuration key + * @return Value or empty string if not found + */ + std::string getLocalConfig(const std::string &key) const; + + /** * @param nwid Network ID * @return Network or NULL if no network for that ID */ |
