]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: modify md_config_cacher_t to implement get_tracked_keys()
authorRonen Friedman <rfriedma@redhat.com>
Wed, 15 Jan 2025 07:38:43 +0000 (01:38 -0600)
committerRonen Friedman <rfriedma@redhat.com>
Sat, 25 Jan 2025 15:42:03 +0000 (09:42 -0600)
Modify the md_config_cacher_t to implement the new
get_tracked_keys() callback, instead of the deprecated
char* based get_tracked_conf_keys().

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/common/config_cacher.h

index f23195955a1b1d19740d42a4233d8edd92442a93..577aac442b68c33141c2659d10e686d743fb338f 100644 (file)
 template <typename ValueT>
 class md_config_cacher_t : public md_config_obs_t {
   ConfigProxy& conf;
-  const char* keys[2];
+  const std::string option_name;
   std::atomic<ValueT> value_cache;
 
-  const char** get_tracked_conf_keys() const override {
-    return const_cast<const char**>(keys);
+  std::vector<std::string> get_tracked_keys() const noexcept override {
+    return std::vector<std::string>{option_name};
   }
 
   void handle_conf_change(const ConfigProxy& conf,
                           const std::set<std::string>& changed) override {
-    if (changed.contains(keys[0])) {
-      value_cache.store(conf.get_val<ValueT>(keys[0]));
+    if (changed.contains(option_name)) {
+      value_cache.store(conf.get_val<ValueT>(option_name));
     }
   }
 
 public:
   md_config_cacher_t(ConfigProxy& conf,
                      const char* const option_name)
-    : conf(conf),
-      keys{option_name, nullptr} {
+    : conf(conf)
+    , option_name{option_name} {
     conf.add_observer(this);
     std::atomic_init(&value_cache,
-                     conf.get_val<ValueT>(keys[0]));
+                     conf.get_val<ValueT>(option_name));
   }
 
   ~md_config_cacher_t() {