1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===-- OptionGroupBoolean.h ------------------------------------*- C++ -*-===// 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// The LLVM Compiler Infrastructure 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This file is distributed under the University of Illinois Open Source 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// License. See LICENSE.TXT for details. 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===// 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef liblldb_OptionGroupBoolean_h_ 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define liblldb_OptionGroupBoolean_h_ 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// C Includes 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// C++ Includes 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Other libraries and framework includes 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Project includes 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "lldb/Interpreter/Options.h" 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "lldb/Interpreter/OptionValueBoolean.h" 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace lldb_private { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) //------------------------------------------------------------------------- 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // OptionGroupBoolean 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) //------------------------------------------------------------------------- 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) class OptionGroupBoolean : public OptionGroup 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) { 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // When 'no_argument_toggle_default' is true, then setting the option 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // value does NOT require an argument, it sets the boolean value to the 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // inverse of the default value 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) OptionGroupBoolean (uint32_t usage_mask, 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool required, 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const char *long_option, 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int short_option, 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const char *usage_text, 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool default_value, 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool no_argument_toggle_default); 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ~OptionGroupBoolean (); 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual uint32_t 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetNumDefinitions () 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return 1; 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual const OptionDefinition* 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetDefinitions () 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) { 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return &m_option_definition; 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual Error 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SetOptionValue (CommandInterpreter &interpreter, 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) uint32_t option_idx, 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const char *option_value); 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) OptionParsingStarting (CommandInterpreter &interpreter); 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) OptionValueBoolean & 645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) GetOptionValue () 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return m_value; 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const OptionValueBoolean & 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetOptionValue () const 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return m_value; 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) protected: 765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) OptionValueBoolean m_value; 775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) OptionDefinition m_option_definition; 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // namespace lldb_private 825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif // liblldb_OptionGroupBoolean_h_ 845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)