OptionGroupString.h 1.6 KB

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