From: Kefu Chai Date: Thu, 1 Apr 2021 04:39:49 +0000 (+0800) Subject: msg/msg_types: remove entity_name_t::parse(const char*...) X-Git-Tag: v17.1.0~2388^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8c6b9e45c9b91dce06aae6bc0c8705749e6688d6;p=ceph.git msg/msg_types: remove entity_name_t::parse(const char*...) it can be replaced with entity_name_t::parse(string_view) also refactor entity_name_t::parse(string_view) a little bit, to embed the logic of `entity_name_t::parse(const char*...)` in it. Signed-off-by: Kefu Chai --- diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index 94e307f7a0d68..b50488bf1a89a 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -12,27 +12,20 @@ bool entity_name_t::parse(std::string_view s) { - const char *start = s.data(); - char *end = nullptr; - bool got = parse(start, &end); - return got && end == start + s.size(); -} - -bool entity_name_t::parse(const char *start, char **end) -{ - if (strstr(start, "mon.") == start) { + const char* start = s.data(); + if (s.find("mon.") == 0) { _type = TYPE_MON; start += 4; - } else if (strstr(start, "osd.") == start) { + } else if (s.find("osd.") == 0) { _type = TYPE_OSD; start += 4; - } else if (strstr(start, "mds.") == start) { + } else if (s.find("mds.") == 0) { _type = TYPE_MDS; start += 4; - } else if (strstr(start, "client.") == start) { + } else if (s.find("client.") == 0) { _type = TYPE_CLIENT; start += 7; - } else if (strstr(start, "mgr.") == start) { + } else if (s.find("mgr.") == 0) { _type = TYPE_MGR; start += 4; } else { @@ -40,10 +33,13 @@ bool entity_name_t::parse(const char *start, char **end) } if (isspace(*start)) return false; - _num = strtoll(start, end, 10); - if (*end == NULL || *end == start) + char *end = nullptr; + _num = strtoll(start, &end, 10); + if (end == nullptr || end == start) { return false; - return true; + } else { + return end == s.data() + s.size(); + } } void entity_name_t::dump(ceph::Formatter *f) const diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index 84a87bdceac70..0974c9a842723 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -82,7 +82,6 @@ public: } bool parse(std::string_view s); - bool parse(const char *start, char **end); DENC(entity_name_t, v, p) { denc(v._type, p);