/* CLI Definitions for GDB, the GNU debugger.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ Copyright (C) 2016-2019 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef CLI_INTERP_H
-#define CLI_INTERP_H 1
+#ifndef CLI_CLI_INTERP_H
+#define CLI_CLI_INTERP_H
-struct interp;
+#include "interps.h"
+
+/* A console-like interpreter. Implements functionality common to the
+ CLI and the TUI. */
+class cli_interp_base : public interp
+{
+public:
+ explicit cli_interp_base (const char *name);
+ virtual ~cli_interp_base () = 0;
+
+ void set_logging (ui_file_up logfile, bool logging_redirect,
+ bool debug_redirect) override;
+ void pre_command_loop () override;
+ bool supports_command_editing () override;
+};
+
+/* The CLI interpreter's set_logging_proc method. Exported so other
+ interpreters can reuse it. */
+extern void cli_set_logging (struct interp *interp,
+ ui_file_up logfile, bool logging_redirect);
extern int cli_interpreter_supports_command_editing (struct interp *interp);
extern int should_print_stop_to_console (struct interp *interp,
struct thread_info *tp);
-#endif
+#endif /* CLI_CLI_INTERP_H */