41 explicit ui_out_hdr (
int number,
int min_width,
ui_align alignment,
44 m_min_width (min_width),
45 m_alignment (alignment),
56 int min_width ()
const 176 const char **col_hdr);
178 bool query_field (
int colno,
int *width,
int *alignment,
179 const char **col_name)
const;
214 _(
"extra table_body call not allowed; there must be only " 215 "one table_body after a table_begin and before a " 222 _(
"number of headers differ from number of table " 237 _(
"table header must be specified after table_begin and " 238 "before table_body."));
240 std::unique_ptr<ui_out_hdr> header (
new ui_out_hdr (
m_headers.size () + 1,
244 m_headers.push_back (std::move (header));
257 const char **col_hdr)
265 *colno = hdr->number ();
266 *width = hdr->min_width ();
267 *alignment = hdr->alignment ();
268 *col_hdr = hdr->header ().c_str ();
279 const char **col_name)
const 282 int index = colno - 1;
284 if (index >= 0 && index <
m_headers.size ())
286 ui_out_hdr *hdr =
m_headers[index].get ();
290 *width = hdr->min_width ();
291 *alignment = hdr->alignment ();
292 *col_name = hdr->name ().c_str ();
356 _(
"tables cannot be nested; table_begin found before \ 357 previous table_end."));
370 _(
"table_header outside a table is not valid; it must be \ 371 after a table_begin and before a table_body."));
373 m_table_up->append_header (width, alignment, col_name, col_hdr);
383 _(
"table_body outside a table is not valid; it must be " 384 "after a table_begin and before a table_end."));
396 _(
"misplaced table_end or missing table_begin."));
454 xfree (end_cleanup_data);
499 const char *fldname,
int value)
522 if (!stream.
empty ())
567 va_start (args, format);
569 do_field_fmt (fldno, width, align, fldname, format, args);
591 va_start (args, format);
641 _(
"table_body missing; table fields must be \ 642 specified after table_body and inside a list."));
654 _(
"ui-out internal error in handling headers."));
668 const char **col_name)
673 return m_table_up->query_field (colno, width, alignment, col_name);
virtual void virtual void do_spaces(int numspaces)=0
static void do_cleanup_end(void *data)
virtual void do_end(ui_out_type type)=0
void field_core_addr(const char *fldname, struct gdbarch *gdbarch, CORE_ADDR address)
void field_string(const char *fldname, const char *string)
void pop_level(ui_out_type type)
ui_out_flags test_flags(ui_out_flags mask)
static struct cleanup * make_cleanup_ui_out_end(struct ui_out *uiout, enum ui_out_type type)
ui_out_level * current_level() const
void void wrap_hint(const char *identstring)
std::vector< std::unique_ptr< ui_out_level > > m_levels
void verify_field(int *fldno, int *width, ui_align *align)
void field_skip(const char *fldname)
virtual void do_begin(ui_out_type type, const char *id)=0
void internal_error(const char *file, int line, const char *fmt,...)
void table_header(int width, ui_align align, const std::string &col_name, const std::string &col_hdr)
virtual void do_field_fmt(int fldno, int width, ui_align align, const char *fldname, const char *format, va_list args) ATTRIBUTE_PRINTF(6
virtual void do_table_header(int width, ui_align align, const std::string &col_name, const std::string &col_hdr)=0
bool query_field(int colno, int *width, int *alignment, const char **col_name) const
std::unique_ptr< ui_out_table > m_table_up
void text(const char *string)
virtual void virtual void do_wrap_hint(const char *identstring)=0
ui_out(ui_out_flags flags=0)
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
void append_header(int width, ui_align alignment, const std::string &col_name, const std::string &col_hdr)
ui_out_level(ui_out_type type)
void end(ui_out_type type)
void redirect(ui_file *outstream)
struct cleanup * make_cleanup_ui_out_list_begin_end(struct ui_out *uiout, const char *id)
struct cleanup * make_cleanup_ui_out_tuple_begin_end(struct ui_out *uiout, const char *id)
virtual bool do_is_mi_like_p()
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
ui_out_table(int entry_level, int nr_cols, const std::string &id)
virtual void do_field_skip(int fldno, int width, ui_align align, const char *fldname)=0
void field_stream(const char *fldname, string_file &stream)
void void spaces(int numspaces)
virtual void do_table_begin(int nbrofcols, int nr_rows, const char *tblid)=0
virtual void do_flush()=0
virtual void do_field_string(int fldno, int width, ui_align align, const char *fldname, const char *string)=0
bool query_table_field(int colno, int *width, int *alignment, const char **col_name)
const char * c_str() const
void field_int(const char *fldname, int value)
virtual void do_redirect(struct ui_file *outstream)=0
void message(const char *format,...) ATTRIBUTE_PRINTF(2
std::vector< std::unique_ptr< ui_out_hdr > >::const_iterator m_headers_iterator
const char * print_core_address(struct gdbarch *gdbarch, CORE_ADDR address)
state current_state() const
virtual void do_text(const char *string)=0
virtual void do_field_int(int fldno, int width, ui_align align, const char *fldname, int value)=0
void field_fmt_int(int width, ui_align align, const char *fldname, int value)
std::vector< std::unique_ptr< ui_out_hdr > > m_headers
virtual void do_table_body()=0
virtual void do_table_end()=0
void begin(ui_out_type type, const char *id)
void push_level(ui_out_type type)
virtual void do_message(const char *format, va_list args) ATTRIBUTE_PRINTF(2
bool get_next_header(int *colno, int *width, ui_align *alignment, const char **col_hdr)
void field_fmt(const char *fldname, const char *format,...) ATTRIBUTE_PRINTF(3
void table_begin(int nr_cols, int nr_rows, const std::string &tblid)