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 16 namespace lldb_private { 17 class CommandInterpreterRunOptions; 18 class CommandInterpreterRunResult; 19 } // namespace lldb_private 20 21 namespace lldb { 22 23 class LLDB_API SBCommandInterpreterRunOptions { 24 friend class SBDebugger; 25 friend class SBCommandInterpreter; 26 27 public: 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 75 bool GetAllowRepeats() const; 76 77 /// By default, RunCommandInterpreter will discard repeats if the 78 /// IOHandler being used is not interactive. Setting AllowRepeats to true 79 /// will override this behavior and always process empty lines in the input 80 /// as a repeat command. 81 void SetAllowRepeats(bool); 82 83 private: 84 lldb_private::CommandInterpreterRunOptions *get() const; 85 86 lldb_private::CommandInterpreterRunOptions &ref() const; 87 88 // This is set in the constructor and will always be valid. 89 mutable std::unique_ptr<lldb_private::CommandInterpreterRunOptions> 90 m_opaque_up; 91 }; 92 93 #ifndef SWIG 94 class LLDB_API SBCommandInterpreterRunResult { 95 friend class SBDebugger; 96 friend class SBCommandInterpreter; 97 98 public: 99 SBCommandInterpreterRunResult(); 100 SBCommandInterpreterRunResult(const SBCommandInterpreterRunResult &rhs); 101 ~SBCommandInterpreterRunResult(); 102 103 SBCommandInterpreterRunResult & 104 operator=(const SBCommandInterpreterRunResult &rhs); 105 106 int GetNumberOfErrors() const; 107 lldb::CommandInterpreterResult GetResult() const; 108 109 private: 110 SBCommandInterpreterRunResult( 111 const lldb_private::CommandInterpreterRunResult &rhs); 112 113 // This is set in the constructor and will always be valid. 114 std::unique_ptr<lldb_private::CommandInterpreterRunResult> m_opaque_up; 115 }; 116 #endif 117 118 } // namespace lldb 119 120 #endif // LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H 121