From dd7a99349f6fb571d53d412e04f6386be30eec82 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Fri, 21 Jul 2023 13:55:25 -0400 Subject: [PATCH] common/Formatter: refactor generating xml name Signed-off-by: Patrick Donnelly --- src/common/Formatter.cc | 35 ++++++++++++++--------------------- src/common/Formatter.h | 1 + 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/common/Formatter.cc b/src/common/Formatter.cc index 362deffb5ab4a..4ced59769b508 100644 --- a/src/common/Formatter.cc +++ b/src/common/Formatter.cc @@ -441,14 +441,20 @@ void XMLFormatter::open_array_section_in_ns(std::string_view name, const char *n open_section_in_ns(name, ns, NULL); } +std::string XMLFormatter::get_xml_name(std::string_view name) const +{ + std::string e(name); + std::transform(e.begin(), e.end(), e.begin(), + [this](char c) { return this->to_lower_underscore(c); }); + return e; +} + void XMLFormatter::close_section() { ceph_assert(!m_sections.empty()); finish_pending_string(); - std::string section = m_sections.back(); - std::transform(section.begin(), section.end(), section.begin(), - [this](char c) { return this->to_lower_underscore(c); }); + auto section = get_xml_name(m_sections.back()); m_sections.pop_back(); print_spaces(); m_ss << ""; @@ -459,10 +465,7 @@ void XMLFormatter::close_section() template void XMLFormatter::add_value(std::string_view name, T val) { - std::string e(name); - std::transform(e.begin(), e.end(), e.begin(), - [this](char c) { return this->to_lower_underscore(c); }); - + auto e = get_xml_name(name); print_spaces(); m_ss.precision(std::numeric_limits::max_digits10); m_ss << "<" << e << ">" << val << ""; @@ -487,10 +490,7 @@ void XMLFormatter::dump_float(std::string_view name, double d) void XMLFormatter::dump_string(std::string_view name, std::string_view s) { - std::string e(name); - std::transform(e.begin(), e.end(), e.begin(), - [this](char c) { return this->to_lower_underscore(c); }); - + auto e = get_xml_name(name); print_spaces(); m_ss << "<" << e << ">" << xml_stream_escaper(s) << ""; if (m_pretty) @@ -499,10 +499,7 @@ void XMLFormatter::dump_string(std::string_view name, std::string_view s) void XMLFormatter::dump_string_with_attrs(std::string_view name, std::string_view s, const FormatterAttrs& attrs) { - std::string e(name); - std::transform(e.begin(), e.end(), e.begin(), - [this](char c) { return this->to_lower_underscore(c); }); - + auto e = get_xml_name(name); std::string attrs_str; get_attrs_str(&attrs, attrs_str); print_spaces(); @@ -523,9 +520,7 @@ void XMLFormatter::dump_format_va(std::string_view name, const char *ns, bool qu { char buf[LARGE_SIZE]; size_t len = vsnprintf(buf, LARGE_SIZE, fmt, ap); - std::string e(name); - std::transform(e.begin(), e.end(), e.begin(), - [this](char c) { return this->to_lower_underscore(c); }); + auto e = get_xml_name(name); print_spaces(); if (ns) { @@ -577,9 +572,7 @@ void XMLFormatter::open_section_in_ns(std::string_view name, const char *ns, con get_attrs_str(attrs, attrs_str); } - std::string e(name); - std::transform(e.begin(), e.end(), e.begin(), - [this](char c) { return this->to_lower_underscore(c); }); + auto e = get_xml_name(name); if (ns) { m_ss << "<" << e << attrs_str << " xmlns=\"" << ns << "\">"; diff --git a/src/common/Formatter.h b/src/common/Formatter.h index abdc172cba53b..8f475c61d284e 100644 --- a/src/common/Formatter.h +++ b/src/common/Formatter.h @@ -249,6 +249,7 @@ namespace ceph { void print_spaces(); void get_attrs_str(const FormatterAttrs *attrs, std::string& attrs_str); char to_lower_underscore(char c) const; + std::string get_xml_name(std::string_view name) const; std::stringstream m_ss, m_pending_string; std::deque m_sections; -- 2.39.5