]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/common/config_proxy.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / common / config_proxy.h
index ce7c35d83ce855386696afeba128795e790caeab..9c0850fd08e1c7053f72e411c06d548e070aec06 100644 (file)
@@ -11,6 +11,7 @@
 // @c ConfigProxy is a facade of multiple config related classes. it exposes
 // the legacy settings with arrow operator, and the new-style config with its
 // member methods.
+namespace ceph::common{
 class ConfigProxy {
   static ConfigValues get_config_values(const ConfigProxy &config_proxy) {
     std::lock_guard locker(config_proxy.lock);
@@ -123,33 +124,38 @@ public:
   ConfigValues* operator->() noexcept {
     return &values;
   }
-  int get_val(const std::string& key, char** buf, int len) const {
+#ifdef WITH_SEASTAR
+  void set_config_values(const ConfigValues& val) {
+    values = val;
+  }
+#endif
+  int get_val(const std::string_view key, char** buf, int len) const {
     std::lock_guard l{lock};
     return config.get_val(values, key, buf, len);
   }
-  int get_val(const std::string &key, std::string *val) const {
+  int get_val(const std::string_view key, std::string *val) const {
     std::lock_guard l{lock};
     return config.get_val(values, key, val);
   }
   template<typename T>
-  const T get_val(const std::string& key) const {
+  const T get_val(const std::string_view key) const {
     std::lock_guard l{lock};
     return config.template get_val<T>(values, key);
   }
   template<typename T, typename Callback, typename...Args>
-  auto with_val(const string& key, Callback&& cb, Args&&... args) const {
+  auto with_val(const std::string_view key, Callback&& cb, Args&&... args) const {
     std::lock_guard l{lock};
     return config.template with_val<T>(values, key,
                                       std::forward<Callback>(cb),
                                       std::forward<Args>(args)...);
   }
-  void config_options(Formatter *f) const {
+  void config_options(ceph::Formatter *f) const {
     config.config_options(f);
   }
   const decltype(md_config_t::schema)& get_schema() const {
     return config.schema;
   }
-  const Option* get_schema(const std::string& key) const {
+  const Option* get_schema(const std::string_view key) const {
     auto found = config.schema.find(key);
     if (found == config.schema.end()) {
       return nullptr;
@@ -157,10 +163,10 @@ public:
       return &found->second;
     }
   }
-  const Option *find_option(const string& name) const {
+  const Option *find_option(const std::string& name) const {
     return config.find_option(name);
   }
-  void diff(Formatter *f, const std::string& name=string{}) const {
+  void diff(ceph::Formatter *f, const std::string& name = {}) const {
     std::lock_guard l{lock};
     return config.diff(values, f, name);
   }
@@ -173,7 +179,7 @@ public:
     return config.get_all_sections(sections);
   }
   int get_val_from_conf_file(const std::vector<std::string>& sections,
-                            const std::string& key, std::string& out,
+                            const std::string_view key, std::string& out,
                             bool emeta) const {
     std::lock_guard l{lock};
     return config.get_val_from_conf_file(values,
@@ -229,15 +235,15 @@ public:
     std::lock_guard l{lock};
     config.show_config(values, out);
   }
-  void show_config(Formatter *f) {
+  void show_config(ceph::Formatter *f) {
     std::lock_guard l{lock};
     config.show_config(values, f);
   }
-  void config_options(Formatter *f) {
+  void config_options(ceph::Formatter *f) {
     std::lock_guard l{lock};
     config.config_options(f);
   }
-  int rm_val(const std::string& key) {
+  int rm_val(const std::string_view key) {
     std::lock_guard l{lock};
     return config.rm_val(values, key);
   }
@@ -263,21 +269,21 @@ public:
         map_observer_changes(obs, key, rev_obs);
       }, oss);
   }
-  int set_val(const std::string& key, const std::string& s,
+  int set_val(const std::string_view key, const std::string& s,
               std::stringstream* err_ss=nullptr) {
     std::lock_guard l{lock};
     return config.set_val(values, obs_mgr, key, s, err_ss);
   }
-  void set_val_default(const std::string& key, const std::string& val) {
+  void set_val_default(const std::string_view key, const std::string& val) {
     std::lock_guard l{lock};
     config.set_val_default(values, obs_mgr, key, val);
   }
-  void set_val_or_die(const std::string& key, const std::string& val) {
+  void set_val_or_die(const std::string_view key, const std::string& val) {
     std::lock_guard l{lock};
     config.set_val_or_die(values, obs_mgr, key, val);
   }
   int set_mon_vals(CephContext *cct,
-                  const map<std::string,std::string>& kv,
+                  const std::map<std::string,std::string,std::less<>>& kv,
                   md_config_t::config_callback config_cb) {
     std::unique_lock locker(lock);
     int ret = config.set_mon_vals(cct, values, obs_mgr, kv, config_cb);
@@ -315,24 +321,26 @@ public:
     return config.parse_config_files(values, obs_mgr,
                                     conf_files, warnings, flags);
   }
-  size_t num_parse_errors() const {
-    return config.parse_errors.size();
+  bool has_parse_error() const {
+    return !config.parse_error.empty();
   }
-  void complain_about_parse_errors(CephContext *cct) {
-    return config.complain_about_parse_errors(cct);
+  void complain_about_parse_error(CephContext *cct) {
+    return config.complain_about_parse_error(cct);
   }
   void do_argv_commands() const {
     std::lock_guard l{lock};
     config.do_argv_commands(values);
   }
   void get_config_bl(uint64_t have_version,
-                    bufferlist *bl,
+                    ceph::buffer::list *bl,
                     uint64_t *got_version) {
     std::lock_guard l{lock};
     config.get_config_bl(values, have_version, bl, got_version);
   }
-  void get_defaults_bl(bufferlist *bl) {
+  void get_defaults_bl(ceph::buffer::list *bl) {
     std::lock_guard l{lock};
     config.get_defaults_bl(values, bl);
   }
 };
+
+}