File indexing completed on 2026-05-10 08:42:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef LLDB_INTERPRETER_OPTIONVALUELANGUAGE_H
0011 #define LLDB_INTERPRETER_OPTIONVALUELANGUAGE_H
0012
0013 #include "lldb/Interpreter/OptionValue.h"
0014 #include "lldb/lldb-enumerations.h"
0015
0016 namespace lldb_private {
0017
0018 class OptionValueLanguage : public Cloneable<OptionValueLanguage, OptionValue> {
0019 public:
0020 OptionValueLanguage(lldb::LanguageType value)
0021 : m_current_value(value), m_default_value(value) {}
0022
0023 OptionValueLanguage(lldb::LanguageType current_value,
0024 lldb::LanguageType default_value)
0025 : m_current_value(current_value), m_default_value(default_value) {}
0026
0027 ~OptionValueLanguage() override = default;
0028
0029
0030
0031 OptionValue::Type GetType() const override { return eTypeLanguage; }
0032
0033 void DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
0034 uint32_t dump_mask) override;
0035
0036 llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) override;
0037
0038 Status
0039 SetValueFromString(llvm::StringRef value,
0040 VarSetOperationType op = eVarSetOperationAssign) override;
0041
0042 void Clear() override {
0043 m_current_value = m_default_value;
0044 m_value_was_set = false;
0045 }
0046
0047
0048
0049 lldb::LanguageType GetCurrentValue() const { return m_current_value; }
0050
0051 lldb::LanguageType GetDefaultValue() const { return m_default_value; }
0052
0053 void SetCurrentValue(lldb::LanguageType value) { m_current_value = value; }
0054
0055 void SetDefaultValue(lldb::LanguageType value) { m_default_value = value; }
0056
0057 protected:
0058 lldb::LanguageType m_current_value;
0059 lldb::LanguageType m_default_value;
0060 };
0061
0062 }
0063
0064 #endif