1e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton//===-- OptionGroupUInt64.h ------------------------------------*- C++ -*-===// 2e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 3e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// The LLVM Compiler Infrastructure 4e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 5e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// This file is distributed under the University of Illinois Open Source 6e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// License. See LICENSE.TXT for details. 7e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 8e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton//===----------------------------------------------------------------------===// 9e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 10e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton#ifndef liblldb_OptionGroupUInt64_h_ 11e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton#define liblldb_OptionGroupUInt64_h_ 12e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 13e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// C Includes 14e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// C++ Includes 15e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// Other libraries and framework includes 16e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// Project includes 17e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton#include "lldb/Interpreter/Options.h" 1873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#include "lldb/Interpreter/OptionValueUInt64.h" 19e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 20e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonnamespace lldb_private { 21e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton //------------------------------------------------------------------------- 22e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton // OptionGroupUInt64 23e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton //------------------------------------------------------------------------- 24e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 25e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton class OptionGroupUInt64 : public OptionGroup 26e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 27e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton public: 28e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 29e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton OptionGroupUInt64 (uint32_t usage_mask, 30e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton bool required, 31e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton const char *long_option, 326475c42148a8ea1ca86e5db465db7eca742d897dGreg Clayton int short_option, 33e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton uint32_t completion_type, 34e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton lldb::CommandArgumentType argument_type, 35e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton const char *usage_text, 36e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton uint64_t default_value); 37e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 38e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton virtual 39e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton ~OptionGroupUInt64 (); 40e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 41e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 42e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton virtual uint32_t 43e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton GetNumDefinitions () 44e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 45e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return 1; 46e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton } 47e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 48e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton virtual const OptionDefinition* 49e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton GetDefinitions () 50e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 51e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return &m_option_definition; 52e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton } 53e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 54e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton virtual Error 55e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton SetOptionValue (CommandInterpreter &interpreter, 56e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton uint32_t option_idx, 57e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton const char *option_value); 58e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 59e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton virtual void 60e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton OptionParsingStarting (CommandInterpreter &interpreter); 61e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 62e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton OptionValueUInt64 & 63e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton GetOptionValue () 64e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 65e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return m_value; 66e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton } 67e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 68e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton const OptionValueUInt64 & 69e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton GetOptionValue () const 70e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 71e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return m_value; 72e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton } 73e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 74e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton protected: 75e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton OptionValueUInt64 m_value; 76e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton OptionDefinition m_option_definition; 77e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 78e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton }; 79e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 80e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} // namespace lldb_private 81e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 82e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton#endif // liblldb_OptionGroupUInt64_h_ 83