15ffd83dbSDimitry Andric //===-- SBCommandInterpreterRunOptions.h ------------------------*- C++ -*-===// 25ffd83dbSDimitry Andric // 35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65ffd83dbSDimitry Andric // 75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 85ffd83dbSDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H 105ffd83dbSDimitry Andric #define LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H 115ffd83dbSDimitry Andric 125ffd83dbSDimitry Andric #include <memory> 135ffd83dbSDimitry Andric 145ffd83dbSDimitry Andric #include "lldb/API/SBDefines.h" 155ffd83dbSDimitry Andric 165ffd83dbSDimitry Andric namespace lldb_private { 175ffd83dbSDimitry Andric class CommandInterpreterRunOptions; 185ffd83dbSDimitry Andric class CommandInterpreterRunResult; 195ffd83dbSDimitry Andric } // namespace lldb_private 205ffd83dbSDimitry Andric 215ffd83dbSDimitry Andric namespace lldb { 225ffd83dbSDimitry Andric 235ffd83dbSDimitry Andric class LLDB_API SBCommandInterpreterRunOptions { 245ffd83dbSDimitry Andric friend class SBDebugger; 255ffd83dbSDimitry Andric friend class SBCommandInterpreter; 265ffd83dbSDimitry Andric 275ffd83dbSDimitry Andric public: 285ffd83dbSDimitry Andric SBCommandInterpreterRunOptions(); 29e8d8bef9SDimitry Andric SBCommandInterpreterRunOptions(const SBCommandInterpreterRunOptions &rhs); 305ffd83dbSDimitry Andric ~SBCommandInterpreterRunOptions(); 315ffd83dbSDimitry Andric 32e8d8bef9SDimitry Andric SBCommandInterpreterRunOptions & 33e8d8bef9SDimitry Andric operator=(const SBCommandInterpreterRunOptions &rhs); 34e8d8bef9SDimitry Andric 355ffd83dbSDimitry Andric bool GetStopOnContinue() const; 365ffd83dbSDimitry Andric 375ffd83dbSDimitry Andric void SetStopOnContinue(bool); 385ffd83dbSDimitry Andric 395ffd83dbSDimitry Andric bool GetStopOnError() const; 405ffd83dbSDimitry Andric 415ffd83dbSDimitry Andric void SetStopOnError(bool); 425ffd83dbSDimitry Andric 435ffd83dbSDimitry Andric bool GetStopOnCrash() const; 445ffd83dbSDimitry Andric 455ffd83dbSDimitry Andric void SetStopOnCrash(bool); 465ffd83dbSDimitry Andric 475ffd83dbSDimitry Andric bool GetEchoCommands() const; 485ffd83dbSDimitry Andric 495ffd83dbSDimitry Andric void SetEchoCommands(bool); 505ffd83dbSDimitry Andric 515ffd83dbSDimitry Andric bool GetEchoCommentCommands() const; 525ffd83dbSDimitry Andric 535ffd83dbSDimitry Andric void SetEchoCommentCommands(bool echo); 545ffd83dbSDimitry Andric 555ffd83dbSDimitry Andric bool GetPrintResults() const; 565ffd83dbSDimitry Andric 575ffd83dbSDimitry Andric void SetPrintResults(bool); 585ffd83dbSDimitry Andric 59fe6060f1SDimitry Andric bool GetPrintErrors() const; 60fe6060f1SDimitry Andric 61fe6060f1SDimitry Andric void SetPrintErrors(bool); 62fe6060f1SDimitry Andric 635ffd83dbSDimitry Andric bool GetAddToHistory() const; 645ffd83dbSDimitry Andric 655ffd83dbSDimitry Andric void SetAddToHistory(bool); 665ffd83dbSDimitry Andric 675ffd83dbSDimitry Andric bool GetAutoHandleEvents() const; 685ffd83dbSDimitry Andric 695ffd83dbSDimitry Andric void SetAutoHandleEvents(bool); 705ffd83dbSDimitry Andric 715ffd83dbSDimitry Andric bool GetSpawnThread() const; 725ffd83dbSDimitry Andric 735ffd83dbSDimitry Andric void SetSpawnThread(bool); 745ffd83dbSDimitry Andric 75*0fca6ea1SDimitry Andric bool GetAllowRepeats() const; 76*0fca6ea1SDimitry Andric 77*0fca6ea1SDimitry Andric /// By default, RunCommandInterpreter will discard repeats if the 78*0fca6ea1SDimitry Andric /// IOHandler being used is not interactive. Setting AllowRepeats to true 79*0fca6ea1SDimitry Andric /// will override this behavior and always process empty lines in the input 80*0fca6ea1SDimitry Andric /// as a repeat command. 81*0fca6ea1SDimitry Andric void SetAllowRepeats(bool); 82*0fca6ea1SDimitry Andric 835ffd83dbSDimitry Andric private: 845ffd83dbSDimitry Andric lldb_private::CommandInterpreterRunOptions *get() const; 855ffd83dbSDimitry Andric 865ffd83dbSDimitry Andric lldb_private::CommandInterpreterRunOptions &ref() const; 875ffd83dbSDimitry Andric 885ffd83dbSDimitry Andric // This is set in the constructor and will always be valid. 895ffd83dbSDimitry Andric mutable std::unique_ptr<lldb_private::CommandInterpreterRunOptions> 905ffd83dbSDimitry Andric m_opaque_up; 915ffd83dbSDimitry Andric }; 925ffd83dbSDimitry Andric 9306c3fb27SDimitry Andric #ifndef SWIG 945ffd83dbSDimitry Andric class LLDB_API SBCommandInterpreterRunResult { 955ffd83dbSDimitry Andric friend class SBDebugger; 965ffd83dbSDimitry Andric friend class SBCommandInterpreter; 975ffd83dbSDimitry Andric 985ffd83dbSDimitry Andric public: 995ffd83dbSDimitry Andric SBCommandInterpreterRunResult(); 1005ffd83dbSDimitry Andric SBCommandInterpreterRunResult(const SBCommandInterpreterRunResult &rhs); 1015ffd83dbSDimitry Andric ~SBCommandInterpreterRunResult(); 1025ffd83dbSDimitry Andric 1035ffd83dbSDimitry Andric SBCommandInterpreterRunResult & 1045ffd83dbSDimitry Andric operator=(const SBCommandInterpreterRunResult &rhs); 1055ffd83dbSDimitry Andric 1065ffd83dbSDimitry Andric int GetNumberOfErrors() const; 1075ffd83dbSDimitry Andric lldb::CommandInterpreterResult GetResult() const; 1085ffd83dbSDimitry Andric 1095ffd83dbSDimitry Andric private: 1105ffd83dbSDimitry Andric SBCommandInterpreterRunResult( 1115ffd83dbSDimitry Andric const lldb_private::CommandInterpreterRunResult &rhs); 1125ffd83dbSDimitry Andric 1135ffd83dbSDimitry Andric // This is set in the constructor and will always be valid. 1145ffd83dbSDimitry Andric std::unique_ptr<lldb_private::CommandInterpreterRunResult> m_opaque_up; 1155ffd83dbSDimitry Andric }; 11606c3fb27SDimitry Andric #endif 1175ffd83dbSDimitry Andric 1185ffd83dbSDimitry Andric } // namespace lldb 1195ffd83dbSDimitry Andric 1205ffd83dbSDimitry Andric #endif // LLDB_API_SBCOMMANDINTERPRETERRUNOPTIONS_H 121