1//===-- SBCommandInterpreterRunOptions.h ------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H
10#define LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H
11
12#include <memory>
13
14#include "lldb/API/SBDefines.h"
15
16namespace lldb_private {
17class CommandInterpreterRunOptions;
18class CommandInterpreterRunResult;
19} // namespace lldb_private
20
21namespace lldb {
22
23class LLDB_API SBCommandInterpreterRunOptions {
24  friend class SBDebugger;
25  friend class SBCommandInterpreter;
26
27public:
28  SBCommandInterpreterRunOptions();
29  SBCommandInterpreterRunOptions(const SBCommandInterpreterRunOptions &rhs);
30  ~SBCommandInterpreterRunOptions();
31
32  SBCommandInterpreterRunOptions &
33  operator=(const SBCommandInterpreterRunOptions &rhs);
34
35  bool GetStopOnContinue() const;
36
37  void SetStopOnContinue(bool);
38
39  bool GetStopOnError() const;
40
41  void SetStopOnError(bool);
42
43  bool GetStopOnCrash() const;
44
45  void SetStopOnCrash(bool);
46
47  bool GetEchoCommands() const;
48
49  void SetEchoCommands(bool);
50
51  bool GetEchoCommentCommands() const;
52
53  void SetEchoCommentCommands(bool echo);
54
55  bool GetPrintResults() const;
56
57  void SetPrintResults(bool);
58
59  bool GetPrintErrors() const;
60
61  void SetPrintErrors(bool);
62
63  bool GetAddToHistory() const;
64
65  void SetAddToHistory(bool);
66
67  bool GetAutoHandleEvents() const;
68
69  void SetAutoHandleEvents(bool);
70
71  bool GetSpawnThread() const;
72
73  void SetSpawnThread(bool);
74
75private:
76  lldb_private::CommandInterpreterRunOptions *get() const;
77
78  lldb_private::CommandInterpreterRunOptions &ref() const;
79
80  // This is set in the constructor and will always be valid.
81  mutable std::unique_ptr<lldb_private::CommandInterpreterRunOptions>
82      m_opaque_up;
83};
84
85#ifndef SWIG
86class LLDB_API SBCommandInterpreterRunResult {
87  friend class SBDebugger;
88  friend class SBCommandInterpreter;
89
90public:
91  SBCommandInterpreterRunResult();
92  SBCommandInterpreterRunResult(const SBCommandInterpreterRunResult &rhs);
93  ~SBCommandInterpreterRunResult();
94
95  SBCommandInterpreterRunResult &
96  operator=(const SBCommandInterpreterRunResult &rhs);
97
98  int GetNumberOfErrors() const;
99  lldb::CommandInterpreterResult GetResult() const;
100
101private:
102  SBCommandInterpreterRunResult(
103      const lldb_private::CommandInterpreterRunResult &rhs);
104
105  // This is set in the constructor and will always be valid.
106  std::unique_ptr<lldb_private::CommandInterpreterRunResult> m_opaque_up;
107};
108#endif
109
110} // namespace lldb
111
112#endif // LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H
113