]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / Core / ValueObjectVariable.h
1 //===-- ValueObjectVariable.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_ValueObjectVariable_h_
11 #define liblldb_ValueObjectVariable_h_
12
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "lldb/Core/ValueObject.h"
18
19 namespace lldb_private {
20
21 //----------------------------------------------------------------------
22 // A ValueObject that contains a root variable that may or may not
23 // have children.
24 //----------------------------------------------------------------------
25 class ValueObjectVariable : public ValueObject
26 {
27 public:
28     static lldb::ValueObjectSP
29     Create (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp);
30
31     virtual
32     ~ValueObjectVariable();
33
34     virtual uint64_t
35     GetByteSize();
36
37     virtual ConstString
38     GetTypeName();
39
40     virtual ConstString
41     GetQualifiedTypeName();
42
43     virtual size_t
44     CalculateNumChildren();
45
46     virtual lldb::ValueType
47     GetValueType() const;
48
49     virtual bool
50     IsInScope ();
51
52     virtual lldb::ModuleSP
53     GetModule();
54     
55     virtual SymbolContextScope *
56     GetSymbolContextScope();
57
58     virtual bool
59     GetDeclaration (Declaration &decl);
60     
61     virtual const char *
62     GetLocationAsCString ();
63     
64     virtual bool
65     SetValueFromCString (const char *value_str, Error& error);
66
67     virtual bool
68     SetData (DataExtractor &data, Error &error);
69     
70 protected:
71     virtual bool
72     UpdateValue ();
73     
74     virtual ClangASTType
75     GetClangTypeImpl ();
76
77     lldb::VariableSP  m_variable_sp;  ///< The variable that this value object is based upon
78     Value m_resolved_value;           ///< The value that DWARFExpression resolves this variable to before we patch it up
79
80 private:
81     ValueObjectVariable (ExecutionContextScope *exe_scope, const lldb::VariableSP &var_sp);
82     //------------------------------------------------------------------
83     // For ValueObject only
84     //------------------------------------------------------------------
85     DISALLOW_COPY_AND_ASSIGN (ValueObjectVariable);
86 };
87
88 } // namespace lldb_private
89
90 #endif  // liblldb_ValueObjectVariable_h_