1 | //===-- OptionGroupString.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_INTERPRETER_OPTIONGROUPSTRING_H |
10 | #define LLDB_INTERPRETER_OPTIONGROUPSTRING_H |
11 | |
12 | #include "lldb/Interpreter/OptionValueString.h" |
13 | #include "lldb/Interpreter/Options.h" |
14 | |
15 | namespace lldb_private { |
16 | // OptionGroupString |
17 | |
18 | class OptionGroupString : public OptionGroup { |
19 | public: |
20 | OptionGroupString(uint32_t usage_mask, bool required, const char *long_option, |
21 | int short_option, uint32_t completion_type, |
22 | lldb::CommandArgumentType argument_type, |
23 | const char *usage_text, const char *default_value); |
24 | |
25 | ~OptionGroupString() override = default; |
26 | |
27 | llvm::ArrayRef<OptionDefinition> GetDefinitions() override { |
28 | return llvm::ArrayRef<OptionDefinition>(&m_option_definition, 1); |
29 | } |
30 | |
31 | Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value, |
32 | ExecutionContext *execution_context) override; |
33 | |
34 | void OptionParsingStarting(ExecutionContext *execution_context) override; |
35 | |
36 | OptionValueString &GetOptionValue() { return m_value; } |
37 | |
38 | const OptionValueString &GetOptionValue() const { return m_value; } |
39 | |
40 | protected: |
41 | OptionValueString m_value; |
42 | OptionDefinition m_option_definition; |
43 | }; |
44 | |
45 | } // namespace lldb_private |
46 | |
47 | #endif // LLDB_INTERPRETER_OPTIONGROUPSTRING_H |
48 | |