ValueObjectConstResultChild.h revision 915448044bac6fdac22a33cc46697dcb771a8df2
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 clang::ASTContext *clang_ast, 31 void *clang_type, 32 const ConstString &name, 33 uint32_t byte_size, 34 int32_t byte_offset, 35 uint32_t bitfield_bit_size, 36 uint32_t bitfield_bit_offset, 37 bool is_base_class, 38 bool is_deref_of_parent); 39 40 virtual ~ValueObjectConstResultChild(); 41 42 virtual lldb::ValueObjectSP 43 Dereference (Error &error); 44 45 virtual ValueObject * 46 CreateChildAtIndex (uint32_t idx, bool synthetic_array_member, int32_t synthetic_index); 47 48 virtual lldb::clang_type_t 49 GetClangType () 50 { 51 return ValueObjectChild::GetClangType(); 52 } 53 54 virtual lldb::ValueObjectSP 55 GetSyntheticChildAtOffset(uint32_t offset, const ClangASTType& type, bool can_create); 56 57 virtual lldb::ValueObjectSP 58 AddressOf (Error &error); 59 60 virtual size_t 61 GetPointeeData (DataExtractor& data, 62 uint32_t item_idx = 0, 63 uint32_t item_count = 1); 64 65protected: 66 ValueObjectConstResultImpl m_impl; 67 68private: 69 friend class ValueObject; 70 friend class ValueObjectConstResult; 71 friend class ValueObjectConstResultImpl; 72 73 DISALLOW_COPY_AND_ASSIGN (ValueObjectConstResultChild); 74}; 75 76} // namespace lldb_private 77 78#endif // liblldb_ValueObjectConstResultChild_h_ 79