+ void updateValue(Settings &other, const std::string &name)
+ {
+ JMutexAutoLock lock(m_mutex);
+
+ if(&other == this)
+ return;
+
+ try{
+ std::string val = other.get(name);
+ m_settings[name] = val;
+ } catch(SettingNotFoundException &e){
+ }
+
+ return;
+ }
+
+ void update(Settings &other)
+ {
+ JMutexAutoLock lock(m_mutex);
+ JMutexAutoLock lock2(other.m_mutex);
+
+ if(&other == this)
+ return;
+
+ for(core::map<std::string, std::string>::Iterator
+ i = other.m_settings.getIterator();
+ i.atEnd() == false; i++)
+ {
+ m_settings[i.getNode()->getKey()] = i.getNode()->getValue();
+ }
+
+ for(core::map<std::string, std::string>::Iterator
+ i = other.m_defaults.getIterator();
+ i.atEnd() == false; i++)
+ {
+ m_defaults[i.getNode()->getKey()] = i.getNode()->getValue();
+ }
+
+ return;
+ }
+