1 //===-- ValueObjectConstResultChild.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_ValueObjectConstResultChild_h_ 11 #define liblldb_ValueObjectConstResultChild_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "lldb/Core/ValueObjectChild.h" 18 #include "lldb/Core/ValueObjectConstResultImpl.h" 19 20 namespace lldb_private { 21 22 //---------------------------------------------------------------------- 23 // A child of a ValueObjectConstResult. 24 //---------------------------------------------------------------------- 25 class ValueObjectConstResultChild : public ValueObjectChild 26 { 27 public: 28 29 ValueObjectConstResultChild (ValueObject &parent, 30 const ClangASTType &clang_type, 31 const ConstString &name, 32 uint32_t byte_size, 33 int32_t byte_offset, 34 uint32_t bitfield_bit_size, 35 uint32_t bitfield_bit_offset, 36 bool is_base_class, 37 bool is_deref_of_parent); 38 39 virtual ~ValueObjectConstResultChild(); 40 41 virtual lldb::ValueObjectSP 42 Dereference (Error &error); 43 44 virtual ValueObject * 45 CreateChildAtIndex (size_t idx, bool synthetic_array_member, int32_t synthetic_index); 46 47 virtual ClangASTType GetClangType()48 GetClangType () 49 { 50 return ValueObjectChild::GetClangType(); 51 } 52 53 virtual lldb::ValueObjectSP 54 GetSyntheticChildAtOffset(uint32_t offset, const ClangASTType& type, bool can_create); 55 56 virtual lldb::ValueObjectSP 57 AddressOf (Error &error); 58 59 virtual size_t 60 GetPointeeData (DataExtractor& data, 61 uint32_t item_idx = 0, 62 uint32_t item_count = 1); 63 64 protected: 65 ValueObjectConstResultImpl m_impl; 66 67 private: 68 friend class ValueObject; 69 friend class ValueObjectConstResult; 70 friend class ValueObjectConstResultImpl; 71 72 DISALLOW_COPY_AND_ASSIGN (ValueObjectConstResultChild); 73 }; 74 75 } // namespace lldb_private 76 77 #endif // liblldb_ValueObjectConstResultChild_h_ 78