1 //===-- OptionValueFileSpec.h -----------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_OptionValueFileSpec_h_
11 #define liblldb_OptionValueFileSpec_h_
15 // Other libraries and framework includes
17 #include "lldb/Host/FileSpec.h"
18 #include "lldb/Interpreter/OptionValue.h"
20 namespace lldb_private {
22 class OptionValueFileSpec : public OptionValue
25 OptionValueFileSpec (bool resolve = true);
27 OptionValueFileSpec (const FileSpec &value,
30 OptionValueFileSpec (const FileSpec ¤t_value,
31 const FileSpec &default_value,
35 ~OptionValueFileSpec()
39 //---------------------------------------------------------------------
40 // Virtual subclass pure virtual overrides
41 //---------------------------------------------------------------------
43 virtual OptionValue::Type
50 DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask);
53 SetValueFromString (llvm::StringRef value,
54 VarSetOperationType op = eVarSetOperationAssign);
59 m_current_value = m_default_value;
60 m_value_was_set = false;
62 m_data_mod_time.Clear();
66 virtual lldb::OptionValueSP
70 AutoComplete (CommandInterpreter &interpreter,
72 int match_start_point,
73 int max_return_elements,
77 //---------------------------------------------------------------------
78 // Subclass specific functions
79 //---------------------------------------------------------------------
84 return m_current_value;
88 GetCurrentValue() const
90 return m_current_value;
94 GetDefaultValue() const
96 return m_default_value;
100 SetCurrentValue (const FileSpec &value, bool set_value_was_set)
102 m_current_value = value;
103 if (set_value_was_set)
104 m_value_was_set = true;
109 SetDefaultValue (const FileSpec &value)
111 m_default_value = value;
114 const lldb::DataBufferSP &
115 GetFileContents(bool null_terminate);
118 SetCompletionMask (uint32_t mask)
120 m_completion_mask = mask;
124 FileSpec m_current_value;
125 FileSpec m_default_value;
126 lldb::DataBufferSP m_data_sp;
127 TimeValue m_data_mod_time;
128 uint32_t m_completion_mask;
132 } // namespace lldb_private
134 #endif // liblldb_OptionValueFileSpec_h_