]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/config,mon/ConfigMap: use transparent comparator
authorKefu Chai <kchai@redhat.com>
Fri, 22 Mar 2019 03:38:42 +0000 (11:38 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 22 Mar 2019 05:03:38 +0000 (13:03 +0800)
use transparent comparator as the comparator in the map of settings, so
we can find the values in a map<string,string> by string_view.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/common/config.cc
src/common/config.h
src/common/config_proxy.h
src/crimson/common/config_proxy.h
src/messages/MConfig.h
src/mon/ConfigMap.cc
src/mon/ConfigMap.h
src/mon/Session.h

index c4b472a5a94dd7fe3afb1b9b838f7d155da4bac7..10f76d1bbb78080feadd8af765f1a754f416ef8b 100644 (file)
@@ -263,7 +263,7 @@ void md_config_t::set_val_default(ConfigValues& values,
 int md_config_t::set_mon_vals(CephContext *cct,
     ConfigValues& values,
     const ConfigTracker& tracker,
-    const map<string,string>& kv,
+    const map<string,string,less<>>& kv,
     config_callback config_cb)
 {
   ignored_mon_values.clear();
index 6d80d27f2f081a78cda3618975380d57414e4f86..a6e1adeba70e5fbc5af9b79f395bfab494749acc 100644 (file)
@@ -157,7 +157,7 @@ public:
   int set_mon_vals(CephContext *cct,
       ConfigValues& values,
       const ConfigTracker& tracker,
-      const map<std::string,std::string>& kv,
+      const map<std::string,std::string, std::less<>>& kv,
       config_callback config_cb);
 
   // Called by the Ceph daemons to make configuration changes at runtime
index 92b0c91a37359304bacecc3379de3ff78eab5b44..ce11a2612deb35e4764a4acbaf37ae423ecdfa75 100644 (file)
@@ -277,7 +277,7 @@ public:
     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) {
     int ret;
     rev_obs_map_t rev_obs;
index 0e6dae72991ae557b8f4a547a929ea05850aa109..28fa2069b1a3295171d8074908067a35b88143bb 100644 (file)
@@ -141,7 +141,8 @@ public:
     return get_config().get_osd_pool_default_min_size(*values, size);
   }
 
-  seastar::future<> set_mon_vals(const std::map<std::string,std::string>& kv) {
+  seastar::future<>
+  set_mon_vals(const std::map<std::string,std::string,std::less<>>& kv) {
     return do_change([kv, this](ConfigValues& values) {
       get_config().set_mon_vals(nullptr, values, obs_mgr, kv, nullptr);
     });
index 1e433e52f74cde0efecc9d7fe2d2f943b07ecc08..28a1c45d84e86fcebb22c424986e2fbf70c563d7 100644 (file)
@@ -12,10 +12,11 @@ public:
   static constexpr int HEAD_VERSION = 1;
   static constexpr int COMPAT_VERSION = 1;
 
-  map<string,string> config;
+  // use transparent comparator so we can lookup in it by string_view keys
+  std::map<string,string,std::less<>> config;
 
   MConfig() : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION) { }
-  MConfig(const map<string,string>& c)
+  MConfig(const std::map<std::string,std::string,std::less<>>& c)
     : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION),
       config(c) {}
 
index c09f73dfa3eaa3f183cbf48ceffe70d9cafa8b58..2defe969f329387f07d0b0b3c811ae210f7904ff 100644 (file)
@@ -101,7 +101,7 @@ void ConfigMap::dump(Formatter *f) const
   f->close_section();
 }
 
-std::map<std::string,std::string>
+std::map<std::string,std::string,std::less<>>
 ConfigMap::generate_entity_map(
   const EntityName& name,
   const map<std::string,std::string>& crush_location,
index 4b061fa4b86a3ce3428c09b79bd978763f72ed28..17b52af1d1d1d99b2113ca522d7d363a204d7ac7 100644 (file)
@@ -120,7 +120,7 @@ struct ConfigMap {
     by_id.clear();
   }
   void dump(Formatter *f) const;
-  std::map<std::string,std::string> generate_entity_map(
+  std::map<std::string,std::string,std::less<>> generate_entity_map(
     const EntityName& name,
     const map<std::string,std::string>& crush_location,
     const CrushWrapper *crush,
index 8981599573ad679865bc99132b9d23820f7b0427..46846c5e1950ac2cc5bc418dbb436c303897b5f1 100644 (file)
@@ -64,7 +64,7 @@ struct MonSession : public RefCountedObject {
   uint64_t proxy_tid = 0;
 
   string remote_host;                ///< remote host name
-  map<string,string> last_config;    ///< most recently shared config
+  map<std::string,std::string,std::less<>> last_config;    ///< most recently shared config
   bool any_config = false;
 
   MonSession(Connection *c)