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 liblldb_OptionGroupUInt64_h_ 10#define liblldb_OptionGroupUInt64_h_ 11 12#include "lldb/Interpreter/OptionValueUInt64.h" 13#include "lldb/Interpreter/Options.h" 14 15namespace lldb_private { 16 17// OptionGroupUInt64 18 19class OptionGroupUInt64 : public OptionGroup { 20public: 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 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 38 OptionValueUInt64 &GetOptionValue() { return m_value; } 39 40 const OptionValueUInt64 &GetOptionValue() const { return m_value; } 41 42protected: 43 OptionValueUInt64 m_value; 44 OptionDefinition m_option_definition; 45}; 46 47} // namespace lldb_private 48 49#endif // liblldb_OptionGroupUInt64_h_ 50