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