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 20namespace lldb_private { 21 22//---------------------------------------------------------------------- 23// A child of a ValueObjectConstResult. 24//---------------------------------------------------------------------- 25class ValueObjectConstResultChild : public ValueObjectChild 26{ 27public: 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 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 64protected: 65 ValueObjectConstResultImpl m_impl; 66 67private: 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