mirror of
https://github.com/ceph/ceph
synced 2025-01-03 01:22:53 +00:00
common/config_proxy: added 'get_config_values' method
Expose the ability to retrieve the ConfigValues from an existing ConfigProxy object. When combined with the newly exposed 'set_config_values' method, it will allow the safe bulk-updating of configuration options. This also removes the original private static version of 'get_config_values'. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
94fcf109f2
commit
d47c180477
@ -13,11 +13,6 @@
|
||||
// member methods.
|
||||
namespace ceph::common {
|
||||
class ConfigProxy {
|
||||
static ConfigValues get_config_values(const ConfigProxy &config_proxy) {
|
||||
std::lock_guard locker(config_proxy.lock);
|
||||
return config_proxy.values;
|
||||
}
|
||||
|
||||
/**
|
||||
* The current values of all settings described by the schema
|
||||
*/
|
||||
@ -115,7 +110,7 @@ public:
|
||||
: config{values, obs_mgr, is_daemon}
|
||||
{}
|
||||
explicit ConfigProxy(const ConfigProxy &config_proxy)
|
||||
: values(get_config_values(config_proxy)),
|
||||
: values(config_proxy.get_config_values()),
|
||||
config{values, obs_mgr, config_proxy.config.is_daemon}
|
||||
{}
|
||||
const ConfigValues* operator->() const noexcept {
|
||||
@ -124,6 +119,10 @@ public:
|
||||
ConfigValues* operator->() noexcept {
|
||||
return &values;
|
||||
}
|
||||
ConfigValues get_config_values() const {
|
||||
std::lock_guard l{lock};
|
||||
return values;
|
||||
}
|
||||
void set_config_values(const ConfigValues& val) {
|
||||
#ifndef WITH_SEASTAR
|
||||
std::lock_guard l{lock};
|
||||
|
Loading…
Reference in New Issue
Block a user