1 //===-- ValueObjectChild.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_ValueObjectChild_h_
11 #define liblldb_ValueObjectChild_h_
15 // Other libraries and framework includes
17 #include "lldb/Core/ValueObject.h"
19 namespace lldb_private {
21 //----------------------------------------------------------------------
22 // A child of another ValueObject.
23 //----------------------------------------------------------------------
24 class ValueObjectChild : public ValueObject
27 virtual ~ValueObjectChild();
44 return m_bitfield_bit_size;
48 GetBitfieldBitOffset()
50 return m_bitfield_bit_offset;
53 virtual lldb::ValueType
57 CalculateNumChildren();
63 GetQualifiedTypeName();
71 return m_is_base_class;
75 IsDereferenceOfParent ()
77 return m_is_deref_of_parent;
90 ClangASTType m_clang_type;
91 ConstString m_type_name;
93 int32_t m_byte_offset;
94 uint8_t m_bitfield_bit_size;
95 uint8_t m_bitfield_bit_offset;
97 bool m_is_deref_of_parent;
101 // ReadValueFromMemory (ValueObject* parent, lldb::addr_t address);
104 friend class ValueObject;
105 friend class ValueObjectConstResult;
106 ValueObjectChild (ValueObject &parent,
107 const ClangASTType &clang_type,
108 const ConstString &name,
111 uint32_t bitfield_bit_size,
112 uint32_t bitfield_bit_offset,
114 bool is_deref_of_parent,
115 AddressType child_ptr_or_ref_addr_type);
117 DISALLOW_COPY_AND_ASSIGN (ValueObjectChild);
120 } // namespace lldb_private
122 #endif // liblldb_ValueObjectChild_h_