]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/msg_types: let ceph_entity_name::parse() accept string_view
authorKefu Chai <kchai@redhat.com>
Thu, 1 Apr 2021 04:32:05 +0000 (12:32 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 1 Apr 2021 14:42:32 +0000 (22:42 +0800)
instead of accepting string, use string_view for the parsed string.

so the caller does not have to construct a temporary std::string object
for passing the string to be parsed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/msg/msg_types.h
src/tools/rados/rados.cc

index cf0574972d30d8bab280e522ae5a74e3a6fcf422..7a542c23279f508db56d34a8e2a46ea662f8299c 100644 (file)
@@ -81,11 +81,11 @@ public:
     return n;
   }
 
-  bool parse(const std::string& s) {
-    const char *start = s.c_str();
-    char *end;
+  bool parse(std::string_view s) {
+    const char *start = s.data();
+    char *end = nullptr;
     bool got = parse(start, &end);
-    return got && end == start + s.length();
+    return got && end == start + s.size();
   }
   bool parse(const char *start, char **end) {
     if (strstr(start, "mon.") == start) {
index 7564fc7f0f2ad7bfc38253392412b95865fac55f..cbdcc228693747806806a064520dd016e1acb108 100644 (file)
@@ -1306,7 +1306,7 @@ static int do_lock_cmd(std::vector<const char*> &nargs,
     usage_exit();
 
   if (cmd.compare("break") == 0) {
-    string locker(nargs[4]);
+    const char* locker = nargs[4];
     rados::cls::lock::Lock l(lock_name);
     l.set_cookie(lock_cookie);
     l.set_tag(lock_tag);