Formatter();
virtual ~Formatter();
+ virtual void enable_line_break() = 0;
virtual void flush(std::ostream& os) = 0;
void flush(bufferlist &bl);
virtual void reset() = 0;
void set_status(int status, const char* status_name) override {};
void output_header() override {};
void output_footer() override {};
+ void enable_line_break() override { m_line_break_enabled = true; }
void flush(std::ostream& os) override;
using Formatter::flush; // don't hide Formatter::flush(bufferlist &bl)
void reset() override;
std::stringstream m_ss, m_pending_string;
std::list<json_formatter_stack_entry_d> m_stack;
bool m_is_pending_string;
+ bool m_line_break_enabled = false;
};
class XMLFormatter : public Formatter {
void output_header() override;
void output_footer() override;
+ void enable_line_break() override { m_line_break_enabled = true; }
void flush(std::ostream& os) override;
using Formatter::flush; // don't hide Formatter::flush(bufferlist &bl)
void reset() override;
const bool m_underscored;
std::string m_pending_string_name;
bool m_header_done;
+ bool m_line_break_enabled = false;
};
class TableFormatter : public Formatter {
void set_status(int status, const char* status_name) override {};
void output_header() override {};
void output_footer() override {};
+ void enable_line_break() override {};
void flush(std::ostream& os) override;
using Formatter::flush; // don't hide Formatter::flush(bufferlist &bl)
void reset() override;
void set_status(int status, const char* status_name) override {}
void output_header() override {};
void output_footer() override {};
-
+ void enable_line_break() override {};
void open_array_section(const char *name) override;
void open_object_section(const char *name) override;
std::cerr << "rbd: --pretty-format only works when --format "
<< "is json or xml" << std::endl;
return -EINVAL;
+ } else if (*formatter != nullptr && !pretty) {
+ formatter->get()->enable_line_break();
}
} else if (vm[at::PRETTY_FORMAT].as<bool>()) {
std::cerr << "rbd: --pretty-format only works when --format "