mirror of
https://github.com/ceph/ceph
synced 2025-02-21 18:17:42 +00:00
common/Formatter: refactor generating xml name
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
This commit is contained in:
parent
7d7218ee3c
commit
dd7a99349f
@ -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 << "</" << section << ">";
|
||||
@ -459,10 +465,7 @@ void XMLFormatter::close_section()
|
||||
template <class T>
|
||||
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<T>::max_digits10);
|
||||
m_ss << "<" << e << ">" << val << "</" << e << ">";
|
||||
@ -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) << "</" << e << ">";
|
||||
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 << "\">";
|
||||
|
@ -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<std::string> m_sections;
|
||||
|
Loading…
Reference in New Issue
Block a user