xref: /freebsd-src/contrib/llvm-project/lldb/include/lldb/API/SBCommandInterpreterRunOptions.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
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