// the legacy settings with arrow operator, and the new-style config with its
// member methods.
class ConfigProxy {
+ static ConfigValues get_config_values(const ConfigProxy &config_proxy) {
+ Mutex::Locker locker(config_proxy.lock);
+ return config_proxy.values;
+ }
+
/**
* The current values of all settings described by the schema
*/
: config{values, obs_mgr, is_daemon},
lock{"ConfigProxy", true, false}
{}
+ explicit ConfigProxy(const ConfigProxy &config_proxy)
+ : values(get_config_values(config_proxy)),
+ config{values, obs_mgr, config_proxy.config.is_daemon},
+ lock{"ConfigProxy", true, false}
+ {}
const ConfigValues* operator->() const noexcept {
return &values;
}