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 GetDefinitions()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 GetOptionValue()36 OptionValueString &GetOptionValue() { return m_value; } 37 GetOptionValue()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