1 //===-- OptionGroupFile.cpp -------------------------------*- 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 #include "lldb/Interpreter/OptionGroupFile.h" 11 12 #include "lldb/Host/OptionParser.h" 13 14 using namespace lldb; 15 using namespace lldb_private; 16 17 OptionGroupFile::OptionGroupFile(uint32_t usage_mask, bool required, 18 const char *long_option, int short_option, 19 uint32_t completion_type, 20 lldb::CommandArgumentType argument_type, 21 const char *usage_text) 22 : m_file() { 23 m_option_definition.usage_mask = usage_mask; 24 m_option_definition.required = required; 25 m_option_definition.long_option = long_option; 26 m_option_definition.short_option = short_option; 27 m_option_definition.validator = nullptr; 28 m_option_definition.option_has_arg = OptionParser::eRequiredArgument; 29 m_option_definition.enum_values = {}; 30 m_option_definition.completion_type = completion_type; 31 m_option_definition.argument_type = argument_type; 32 m_option_definition.usage_text = usage_text; 33 } 34 35 OptionGroupFile::~OptionGroupFile() {} 36 37 Status OptionGroupFile::SetOptionValue(uint32_t option_idx, 38 llvm::StringRef option_arg, 39 ExecutionContext *execution_context) { 40 Status error(m_file.SetValueFromString(option_arg)); 41 return error; 42 } 43 44 void OptionGroupFile::OptionParsingStarting( 45 ExecutionContext *execution_context) { 46 m_file.Clear(); 47 } 48 49 OptionGroupFileList::OptionGroupFileList( 50 uint32_t usage_mask, bool required, const char *long_option, 51 int short_option, uint32_t completion_type, 52 lldb::CommandArgumentType argument_type, const char *usage_text) 53 : m_file_list() { 54 m_option_definition.usage_mask = usage_mask; 55 m_option_definition.required = required; 56 m_option_definition.long_option = long_option; 57 m_option_definition.short_option = short_option; 58 m_option_definition.validator = nullptr; 59 m_option_definition.option_has_arg = OptionParser::eRequiredArgument; 60 m_option_definition.enum_values = {}; 61 m_option_definition.completion_type = completion_type; 62 m_option_definition.argument_type = argument_type; 63 m_option_definition.usage_text = usage_text; 64 } 65 66 OptionGroupFileList::~OptionGroupFileList() {} 67 68 Status 69 OptionGroupFileList::SetOptionValue(uint32_t option_idx, 70 llvm::StringRef option_value, 71 ExecutionContext *execution_context) { 72 Status error(m_file_list.SetValueFromString(option_value)); 73 return error; 74 } 75 76 void OptionGroupFileList::OptionParsingStarting( 77 ExecutionContext *execution_context) { 78 m_file_list.Clear(); 79 } 80