1 //===-- ValueObjectConstResultChild.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_ValueObjectConstResultChild_h_
11 #define liblldb_ValueObjectConstResultChild_h_
15 // Other libraries and framework includes
17 #include "lldb/Core/ValueObjectChild.h"
18 #include "lldb/Core/ValueObjectConstResultImpl.h"
20 namespace lldb_private {
22 //----------------------------------------------------------------------
23 // A child of a ValueObjectConstResult.
24 //----------------------------------------------------------------------
25 class ValueObjectConstResultChild : public ValueObjectChild
29 ValueObjectConstResultChild (ValueObject &parent,
30 const ClangASTType &clang_type,
31 const ConstString &name,
34 uint32_t bitfield_bit_size,
35 uint32_t bitfield_bit_offset,
37 bool is_deref_of_parent);
39 virtual ~ValueObjectConstResultChild();
41 virtual lldb::ValueObjectSP
42 Dereference (Error &error);
45 CreateChildAtIndex (size_t idx, bool synthetic_array_member, int32_t synthetic_index);
50 return ValueObjectChild::GetClangType();
53 virtual lldb::ValueObjectSP
54 GetSyntheticChildAtOffset(uint32_t offset, const ClangASTType& type, bool can_create);
56 virtual lldb::ValueObjectSP
57 AddressOf (Error &error);
60 GetPointeeData (DataExtractor& data,
61 uint32_t item_idx = 0,
62 uint32_t item_count = 1);
65 ValueObjectConstResultImpl m_impl;
68 friend class ValueObject;
69 friend class ValueObjectConstResult;
70 friend class ValueObjectConstResultImpl;
72 DISALLOW_COPY_AND_ASSIGN (ValueObjectConstResultChild);
75 } // namespace lldb_private
77 #endif // liblldb_ValueObjectConstResultChild_h_