GDB (xrefs)
mi-console.h
Go to the documentation of this file.
1 /* MI Command Set - MI Console.
2  Copyright (C) 2000-2018 Free Software Foundation, Inc.
3  Contributed by Cygnus Solutions (a Red Hat company).
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #ifndef MI_CONSOLE_H
21 #define MI_CONSOLE_H
22 
23 /* An output stream for MI. Wraps a given output stream with a prefix
24  and handles quoting. This stream is locally buffered. */
25 
26 class mi_console_file : public ui_file
27 {
28 public:
29  /* Create a console that wraps the given output stream RAW with the
30  string PREFIX and quoting it with QUOTE. */
31  mi_console_file (ui_file *raw, const char *prefix, char quote);
32 
33  /* MI-specific API. */
34  void set_raw (ui_file *raw);
35 
36  /* ui_file-specific methods. */
37 
38  void flush () override;
39 
40  void write (const char *buf, long length_buf) override;
41 
42 private:
43  /* The wrapped raw output stream. */
45 
46  /* The local buffer. */
48 
49  /* The prefix. */
50  const char *m_prefix;
51 
52  /* The quote char. */
53  char m_quote;
54 };
55 
56 #endif
void set_raw(ui_file *raw)
Definition: mi-console.c:86
void flush() override
Definition: mi-console.c:52
ui_file * m_raw
Definition: mi-console.h:44
mi_console_file(ui_file *raw, const char *prefix, char quote)
Definition: mi-console.c:33
string_file m_buffer
Definition: mi-console.h:47
const char * m_prefix
Definition: mi-console.h:50
void write(const char *buf, long length_buf) override
Definition: mi-console.c:40