xref: /freebsd-src/contrib/llvm-project/lldb/source/Commands/CommandOptionsProcessAttach.h (revision 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e)
1*06c3fb27SDimitry Andric //===-- CommandOptionsProcessAttach.h ---------------------------*- C++ -*-===//
2*06c3fb27SDimitry Andric //
3*06c3fb27SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*06c3fb27SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*06c3fb27SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*06c3fb27SDimitry Andric //
7*06c3fb27SDimitry Andric //===----------------------------------------------------------------------===//
8*06c3fb27SDimitry Andric 
9*06c3fb27SDimitry Andric #ifndef LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
10*06c3fb27SDimitry Andric #define LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
11*06c3fb27SDimitry Andric 
12*06c3fb27SDimitry Andric #include "lldb/Interpreter/Options.h"
13*06c3fb27SDimitry Andric #include "lldb/Target/Process.h"
14*06c3fb27SDimitry Andric 
15*06c3fb27SDimitry Andric namespace lldb_private {
16*06c3fb27SDimitry Andric 
17*06c3fb27SDimitry Andric // CommandOptionsProcessAttach
18*06c3fb27SDimitry Andric 
19*06c3fb27SDimitry Andric class CommandOptionsProcessAttach : public lldb_private::OptionGroup {
20*06c3fb27SDimitry Andric public:
CommandOptionsProcessAttach()21*06c3fb27SDimitry Andric   CommandOptionsProcessAttach() {
22*06c3fb27SDimitry Andric     // Keep default values of all options in one place: OptionParsingStarting
23*06c3fb27SDimitry Andric     // ()
24*06c3fb27SDimitry Andric     OptionParsingStarting(nullptr);
25*06c3fb27SDimitry Andric   }
26*06c3fb27SDimitry Andric 
27*06c3fb27SDimitry Andric   ~CommandOptionsProcessAttach() override = default;
28*06c3fb27SDimitry Andric 
29*06c3fb27SDimitry Andric   lldb_private::Status
30*06c3fb27SDimitry Andric   SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg,
31*06c3fb27SDimitry Andric                  lldb_private::ExecutionContext *execution_context) override;
32*06c3fb27SDimitry Andric 
OptionParsingStarting(lldb_private::ExecutionContext * execution_context)33*06c3fb27SDimitry Andric   void OptionParsingStarting(
34*06c3fb27SDimitry Andric       lldb_private::ExecutionContext *execution_context) override {
35*06c3fb27SDimitry Andric     attach_info.Clear();
36*06c3fb27SDimitry Andric   }
37*06c3fb27SDimitry Andric 
38*06c3fb27SDimitry Andric   llvm::ArrayRef<lldb_private::OptionDefinition> GetDefinitions() override;
39*06c3fb27SDimitry Andric 
40*06c3fb27SDimitry Andric   // Instance variables to hold the values for command options.
41*06c3fb27SDimitry Andric 
42*06c3fb27SDimitry Andric   lldb_private::ProcessAttachInfo attach_info;
43*06c3fb27SDimitry Andric }; // CommandOptionsProcessAttach
44*06c3fb27SDimitry Andric 
45*06c3fb27SDimitry Andric } // namespace lldb_private
46*06c3fb27SDimitry Andric 
47*06c3fb27SDimitry Andric #endif // LLDB_SOURCE_COMMANDS_COMMANDOPTIONSPROCESSATTACH_H
48