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