1 //===-- OptionValueArch.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_OptionValueArch_h_
11 #define liblldb_OptionValueArch_h_
15 // Other libraries and framework includes
17 #include "lldb/Core/ArchSpec.h"
18 #include "lldb/Interpreter/OptionValue.h"
20 namespace lldb_private {
22 class OptionValueArch : public OptionValue
32 OptionValueArch (const char *triple) :
34 m_current_value (triple),
37 m_default_value = m_current_value;
40 OptionValueArch (const ArchSpec &value) :
42 m_current_value (value),
43 m_default_value (value)
47 OptionValueArch (const ArchSpec ¤t_value,
48 const ArchSpec &default_value) :
50 m_current_value (current_value),
51 m_default_value (default_value)
55 ~OptionValueArch() override
59 //---------------------------------------------------------------------
60 // Virtual subclass pure virtual overrides
61 //---------------------------------------------------------------------
64 GetType() const override
70 DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override;
73 SetValueFromString(llvm::StringRef value,
74 VarSetOperationType op = eVarSetOperationAssign) override;
79 m_current_value = m_default_value;
80 m_value_was_set = false;
85 DeepCopy() const override;
88 AutoComplete(CommandInterpreter &interpreter,
90 int match_start_point,
91 int max_return_elements,
93 StringList &matches) override;
95 //---------------------------------------------------------------------
96 // Subclass specific functions
97 //---------------------------------------------------------------------
102 return m_current_value;
106 GetCurrentValue() const
108 return m_current_value;
112 GetDefaultValue() const
114 return m_default_value;
118 SetCurrentValue (const ArchSpec &value, bool set_value_was_set)
120 m_current_value = value;
121 if (set_value_was_set)
122 m_value_was_set = true;
126 SetDefaultValue (const ArchSpec &value)
128 m_default_value = value;
132 ArchSpec m_current_value;
133 ArchSpec m_default_value;
136 } // namespace lldb_private
138 #endif // liblldb_OptionValueArch_h_