1 //===-- OptionGroupFile.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_OptionGroupFile_h_ 11 #define liblldb_OptionGroupFile_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "lldb/Interpreter/OptionValueFileSpec.h" 18 #include "lldb/Interpreter/OptionValueFileSpecList.h" 19 #include "lldb/Interpreter/Options.h" 20 21 namespace lldb_private { 22 23 //------------------------------------------------------------------------- 24 // OptionGroupFile 25 //------------------------------------------------------------------------- 26 27 class OptionGroupFile : public OptionGroup { 28 public: 29 OptionGroupFile(uint32_t usage_mask, bool required, const char *long_option, 30 int short_option, uint32_t completion_type, 31 lldb::CommandArgumentType argument_type, 32 const char *usage_text); 33 34 ~OptionGroupFile() override; 35 36 uint32_t GetNumDefinitions() override { return 1; } 37 38 const OptionDefinition *GetDefinitions() override { 39 return &m_option_definition; 40 } 41 42 Error SetOptionValue(uint32_t option_idx, const char *option_value, 43 ExecutionContext *execution_context) override; 44 45 void OptionParsingStarting(ExecutionContext *execution_context) override; 46 47 OptionValueFileSpec &GetOptionValue() { return m_file; } 48 49 const OptionValueFileSpec &GetOptionValue() const { return m_file; } 50 51 protected: 52 OptionValueFileSpec m_file; 53 OptionDefinition m_option_definition; 54 }; 55 56 //------------------------------------------------------------------------- 57 // OptionGroupFileList 58 //------------------------------------------------------------------------- 59 60 class OptionGroupFileList : public OptionGroup { 61 public: 62 OptionGroupFileList(uint32_t usage_mask, bool required, 63 const char *long_option, int short_option, 64 uint32_t completion_type, 65 lldb::CommandArgumentType argument_type, 66 const char *usage_text); 67 68 ~OptionGroupFileList() override; 69 70 uint32_t GetNumDefinitions() override { return 1; } 71 72 const OptionDefinition *GetDefinitions() override { 73 return &m_option_definition; 74 } 75 76 Error SetOptionValue(uint32_t option_idx, const char *option_value, 77 ExecutionContext *execution_context) override; 78 79 void OptionParsingStarting(ExecutionContext *execution_context) override; 80 81 OptionValueFileSpecList &GetOptionValue() { return m_file_list; } 82 83 const OptionValueFileSpecList &GetOptionValue() const { return m_file_list; } 84 85 protected: 86 OptionValueFileSpecList m_file_list; 87 OptionDefinition m_option_definition; 88 }; 89 90 } // namespace lldb_private 91 92 #endif // liblldb_OptionGroupFile_h_ 93