diff options
Diffstat (limited to 'include/lldb/Core/ValueObjectConstResultCast.h')
-rw-r--r-- | include/lldb/Core/ValueObjectConstResultCast.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/include/lldb/Core/ValueObjectConstResultCast.h b/include/lldb/Core/ValueObjectConstResultCast.h new file mode 100644 index 000000000000..395820dad6c7 --- /dev/null +++ b/include/lldb/Core/ValueObjectConstResultCast.h @@ -0,0 +1,76 @@ +//===-- ValueObjectConstResultCast.h ----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_ValueObjectConstResultCast_h_ +#define liblldb_ValueObjectConstResultCast_h_ + +// C Includes +// C++ Includes +// Other libraries and framework includes +// Project includes +#include "lldb/Core/ValueObjectCast.h" +#include "lldb/Core/ValueObjectConstResultImpl.h" + +namespace lldb_private { + +class ValueObjectConstResultCast : public ValueObjectCast +{ +public: + ValueObjectConstResultCast ( + ValueObject &parent, + const ConstString &name, + const CompilerType &cast_type, + lldb::addr_t live_address = LLDB_INVALID_ADDRESS); + + ~ValueObjectConstResultCast() override; + + lldb::ValueObjectSP + Dereference(Error &error) override; + + ValueObject * + CreateChildAtIndex(size_t idx, + bool synthetic_array_member, + int32_t synthetic_index) override; + + virtual CompilerType + GetCompilerType () + { + return ValueObjectCast::GetCompilerType(); + } + + lldb::ValueObjectSP + GetSyntheticChildAtOffset(uint32_t offset, + const CompilerType& type, + bool can_create) override; + + lldb::ValueObjectSP + AddressOf (Error &error) override; + + size_t + GetPointeeData (DataExtractor& data, + uint32_t item_idx = 0, + uint32_t item_count = 1) override; + + lldb::ValueObjectSP + Cast (const CompilerType &compiler_type) override; + +protected: + ValueObjectConstResultImpl m_impl; + +private: + friend class ValueObject; + friend class ValueObjectConstResult; + friend class ValueObjectConstResultImpl; + + DISALLOW_COPY_AND_ASSIGN (ValueObjectConstResultCast); +}; + +} // namespace lldb_private + +#endif // liblldb_ValueObjectConstResultCast_h_ |