From 56c7679f1316473344845f881aa9788f5f95f8b1 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 1 Apr 2021 12:36:00 +0800 Subject: [PATCH] msg/msg_types: move ceph_entity_name::parse() into .cc for faster compilation. Signed-off-by: Kefu Chai --- src/msg/msg_types.cc | 36 ++++++++++++++++++++++++++++++++++++ src/msg/msg_types.h | 34 ++-------------------------------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/msg/msg_types.cc b/src/msg/msg_types.cc index 50a75cc86d059..94e307f7a0d68 100644 --- a/src/msg/msg_types.cc +++ b/src/msg/msg_types.cc @@ -10,6 +10,42 @@ #include "common/Formatter.h" +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) { + _type = TYPE_MON; + start += 4; + } else if (strstr(start, "osd.") == start) { + _type = TYPE_OSD; + start += 4; + } else if (strstr(start, "mds.") == start) { + _type = TYPE_MDS; + start += 4; + } else if (strstr(start, "client.") == start) { + _type = TYPE_CLIENT; + start += 7; + } else if (strstr(start, "mgr.") == start) { + _type = TYPE_MGR; + start += 4; + } else { + return false; + } + if (isspace(*start)) + return false; + _num = strtoll(start, end, 10); + if (*end == NULL || *end == start) + return false; + return true; +} + void entity_name_t::dump(ceph::Formatter *f) const { f->dump_string("type", type_str()); diff --git a/src/msg/msg_types.h b/src/msg/msg_types.h index 7a542c23279f5..84a87bdceac70 100644 --- a/src/msg/msg_types.h +++ b/src/msg/msg_types.h @@ -81,38 +81,8 @@ public: return n; } - bool 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 parse(const char *start, char **end) { - if (strstr(start, "mon.") == start) { - _type = TYPE_MON; - start += 4; - } else if (strstr(start, "osd.") == start) { - _type = TYPE_OSD; - start += 4; - } else if (strstr(start, "mds.") == start) { - _type = TYPE_MDS; - start += 4; - } else if (strstr(start, "client.") == start) { - _type = TYPE_CLIENT; - start += 7; - } else if (strstr(start, "mgr.") == start) { - _type = TYPE_MGR; - start += 4; - } else { - return false; - } - if (isspace(*start)) - return false; - _num = strtoll(start, end, 10); - if (*end == NULL || *end == start) - return false; - return true; - } + bool parse(std::string_view s); + bool parse(const char *start, char **end); DENC(entity_name_t, v, p) { denc(v._type, p); -- 2.39.5