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