1 //===-- OptionValueLanguage.h -------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef liblldb_OptionValueLanguage_h_ 12 #define liblldb_OptionValueLanguage_h_ 13 14 #include "lldb/Interpreter/OptionValue.h" 15 #include "lldb/lldb-enumerations.h" 16 17 namespace lldb_private { 18 19 class OptionValueLanguage : public OptionValue { 20 public: OptionValueLanguage(lldb::LanguageType value)21 OptionValueLanguage(lldb::LanguageType value) 22 : OptionValue(), m_current_value(value), m_default_value(value) {} 23 OptionValueLanguage(lldb::LanguageType current_value,lldb::LanguageType default_value)24 OptionValueLanguage(lldb::LanguageType current_value, 25 lldb::LanguageType default_value) 26 : OptionValue(), m_current_value(current_value), 27 m_default_value(default_value) {} 28 ~OptionValueLanguage()29 ~OptionValueLanguage() override {} 30 31 //--------------------------------------------------------------------- 32 // Virtual subclass pure virtual overrides 33 //--------------------------------------------------------------------- 34 GetType()35 OptionValue::Type GetType() const override { return eTypeLanguage; } 36 37 void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, 38 uint32_t dump_mask) override; 39 40 Status 41 SetValueFromString(llvm::StringRef value, 42 VarSetOperationType op = eVarSetOperationAssign) override; 43 Status 44 SetValueFromString(const char *, 45 VarSetOperationType = eVarSetOperationAssign) = delete; 46 Clear()47 bool Clear() override { 48 m_current_value = m_default_value; 49 m_value_was_set = false; 50 return true; 51 } 52 53 lldb::OptionValueSP DeepCopy() const override; 54 55 //--------------------------------------------------------------------- 56 // Subclass specific functions 57 //--------------------------------------------------------------------- 58 GetCurrentValue()59 lldb::LanguageType GetCurrentValue() const { return m_current_value; } 60 GetDefaultValue()61 lldb::LanguageType GetDefaultValue() const { return m_default_value; } 62 SetCurrentValue(lldb::LanguageType value)63 void SetCurrentValue(lldb::LanguageType value) { m_current_value = value; } 64 SetDefaultValue(lldb::LanguageType value)65 void SetDefaultValue(lldb::LanguageType value) { m_default_value = value; } 66 67 protected: 68 lldb::LanguageType m_current_value; 69 lldb::LanguageType m_default_value; 70 }; 71 72 } // namespace lldb_private 73 74 #endif // liblldb_OptionValueLanguage_h_ 75