]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h
Merge bmake 20151020
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / Interpreter / OptionValueLanguage.h
1 //===-- OptionValueLanguage.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_OptionValueLanguage_h_
11 #define liblldb_OptionValueLanguage_h_
12
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "lldb/lldb-enumerations.h"
18 #include "lldb/Interpreter/OptionValue.h"
19
20 namespace lldb_private {
21
22 class OptionValueLanguage : public OptionValue
23 {
24 public:
25     OptionValueLanguage (lldb::LanguageType value) :
26         OptionValue(),
27         m_current_value (value),
28         m_default_value (value)
29     {
30     }
31
32     OptionValueLanguage (lldb::LanguageType current_value,
33                          lldb::LanguageType default_value) :
34         OptionValue(),
35         m_current_value (current_value),
36         m_default_value (default_value)
37     {
38     }
39     
40     virtual 
41     ~OptionValueLanguage ()
42     {
43     }
44     
45     //---------------------------------------------------------------------
46     // Virtual subclass pure virtual overrides
47     //---------------------------------------------------------------------
48     
49     OptionValue::Type
50     GetType () const override
51     {
52         return eTypeLanguage;
53     }
54     
55     void
56     DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask)  override;
57     
58     Error
59     SetValueFromString (llvm::StringRef value, VarSetOperationType op = eVarSetOperationAssign) override;
60     
61     bool
62     Clear ()  override
63     {
64         m_current_value = m_default_value;
65         m_value_was_set = false;
66         return true;
67     }
68
69     lldb::OptionValueSP
70     DeepCopy () const  override;
71     
72     //---------------------------------------------------------------------
73     // Subclass specific functions
74     //---------------------------------------------------------------------
75     
76     lldb::LanguageType
77     GetCurrentValue() const
78     {
79         return m_current_value;
80     }
81     
82     lldb::LanguageType
83     GetDefaultValue() const
84     {
85         return m_default_value;
86     }
87     
88     void
89     SetCurrentValue (lldb::LanguageType value)
90     {
91         m_current_value = value;
92     }
93     
94     void
95     SetDefaultValue (lldb::LanguageType value)
96     {
97         m_default_value = value;
98     }
99     
100 protected:
101     lldb::LanguageType m_current_value;
102     lldb::LanguageType m_default_value;
103 };
104
105 } // namespace lldb_private
106
107 #endif  // liblldb_OptionValueLanguage_h_