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