157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton//===-- OptionGroupOutputFile.h -------------------------------*- C++ -*-===// 257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// 357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// The LLVM Compiler Infrastructure 457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// 557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// This file is distributed under the University of Illinois Open Source 657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// License. See LICENSE.TXT for details. 757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// 857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton//===----------------------------------------------------------------------===// 957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 1057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton#ifndef liblldb_OptionGroupOutputFile_h_ 1157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton#define liblldb_OptionGroupOutputFile_h_ 1257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 1357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// C Includes 1457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// C++ Includes 1557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// Other libraries and framework includes 1657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// Project includes 1757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton#include "lldb/Interpreter/Options.h" 1873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#include "lldb/Interpreter/OptionValueBoolean.h" 1973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#include "lldb/Interpreter/OptionValueFileSpec.h" 2057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 2157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Claytonnamespace lldb_private { 2257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton//------------------------------------------------------------------------- 2357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton// OptionGroupOutputFile 2457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton//------------------------------------------------------------------------- 2557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 2657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Claytonclass OptionGroupOutputFile : public OptionGroup 2757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton{ 2857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Claytonpublic: 2957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 3057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton OptionGroupOutputFile (); 3157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 3257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton virtual 3357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton ~OptionGroupOutputFile (); 3457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 3557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 3657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton virtual uint32_t 3757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton GetNumDefinitions (); 3857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 3957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton virtual const OptionDefinition* 4057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton GetDefinitions (); 4157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 4257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton virtual Error 4357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton SetOptionValue (CommandInterpreter &interpreter, 4457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton uint32_t option_idx, 4557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton const char *option_value); 4657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 4757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton virtual void 4857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton OptionParsingStarting (CommandInterpreter &interpreter); 4957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 5057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton const OptionValueFileSpec & 5157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton GetFile () 5257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton { 5357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton return m_file; 5457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton } 5557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 5657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton const OptionValueBoolean & 5757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton GetAppend () 5857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton { 5957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton return m_append; 6057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton } 61902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton 62902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton bool 63902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton AnyOptionWasSet () const 64902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton { 65902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton return m_file.OptionWasSet() || m_append.OptionWasSet(); 66902b5beee960a8861867f06588c12ac6eb55eb9dGreg Clayton } 6757b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 6857b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Claytonprotected: 6957b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton OptionValueFileSpec m_file; 7057b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton OptionValueBoolean m_append; 7157b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 7257b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton}; 7357b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 7457b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton} // namespace lldb_private 7557b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton 7657b3c6b12812b0a7a79f896855c787bd4d893ecbGreg Clayton#endif // liblldb_OptionGroupOutputFile_h_ 77