1307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton//===-- OptionGroupString.h ------------------------------------*- C++ -*-===// 2307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// 3307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// The LLVM Compiler Infrastructure 4307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// 5307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// This file is distributed under the University of Illinois Open Source 6307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// License. See LICENSE.TXT for details. 7307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// 8307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton//===----------------------------------------------------------------------===// 9307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 10307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton#ifndef liblldb_OptionGroupString_h_ 11307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton#define liblldb_OptionGroupString_h_ 12307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 13307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// C Includes 14307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// C++ Includes 15307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// Other libraries and framework includes 16307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton// Project includes 17307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton#include "lldb/Interpreter/Options.h" 18307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton#include "lldb/Interpreter/OptionValueString.h" 19307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 20307c7fdc58d19f734991a176db972cc61d9ada16Greg Claytonnamespace lldb_private { 21307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton //------------------------------------------------------------------------- 22307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton // OptionGroupString 23307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton //------------------------------------------------------------------------- 24307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 25307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton class OptionGroupString : public OptionGroup 26307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton { 27307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton public: 28307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 29307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton OptionGroupString (uint32_t usage_mask, 30307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton bool required, 31307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton const char *long_option, 326475c42148a8ea1ca86e5db465db7eca742d897dGreg Clayton int short_option, 33307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton uint32_t completion_type, 34307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton lldb::CommandArgumentType argument_type, 35307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton const char *usage_text, 36307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton const char *default_value); 37307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 38307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton virtual 39307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton ~OptionGroupString (); 40307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 41307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 42307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton virtual uint32_t 43307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton GetNumDefinitions () 44307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton { 45307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton return 1; 46307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton } 47307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 48307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton virtual const OptionDefinition* 49307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton GetDefinitions () 50307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton { 51307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton return &m_option_definition; 52307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton } 53307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 54307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton virtual Error 55307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton SetOptionValue (CommandInterpreter &interpreter, 56307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton uint32_t option_idx, 57307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton const char *option_value); 58307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 59307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton virtual void 60307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton OptionParsingStarting (CommandInterpreter &interpreter); 61307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 62307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton OptionValueString & 63307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton GetOptionValue () 64307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton { 65307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton return m_value; 66307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton } 67307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 68307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton const OptionValueString & 69307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton GetOptionValue () const 70307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton { 71307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton return m_value; 72307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton } 73307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 74307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton protected: 75307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton OptionValueString m_value; 76307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton OptionDefinition m_option_definition; 77307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 78307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton }; 79307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 80307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton} // namespace lldb_private 81307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton 82307c7fdc58d19f734991a176db972cc61d9ada16Greg Clayton#endif // liblldb_OptionGroupString_h_ 83