16#ifndef LIEF_MEMORY_STREAM_H
17#define LIEF_MEMORY_STREAM_H
48 return this->baseaddr_;
51 const uint8_t*
p()
const override {
55 const uint8_t*
start()
const override {
56 return reinterpret_cast<const uint8_t*
>(baseaddr_);
59 const uint8_t*
end()
const override {
60 return start() + size_;
71 uint64_t
size()
const override {
83 uintptr_t baseaddr_ = 0;
STREAM_TYPE
Definition BinaryStream.hpp:37
@ MEMORY
Definition BinaryStream.hpp:40
virtual const uint8_t * p() const
Definition BinaryStream.hpp:259
size_t pos() const
Definition BinaryStream.hpp:175
virtual uint8_t * start()
Definition BinaryStream.hpp:263
BinaryStream(STREAM_TYPE type)
Definition BinaryStream.hpp:47
STREAM_TYPE type() const
Definition BinaryStream.hpp:53
virtual uint8_t * end()
Definition BinaryStream.hpp:271
Abstract binary that exposes an uniform API for the different executable file formats.
Definition Abstract/Binary.hpp:53
const uint8_t * end() const override
Definition MemoryStream.hpp:59
MemoryStream(uintptr_t base_address)
static bool classof(const BinaryStream &stream)
Definition MemoryStream.hpp:77
MemoryStream(const MemoryStream &)=delete
Binary * binary()
Definition MemoryStream.hpp:67
MemoryStream & operator=(const MemoryStream &)=delete
void binary(Binary &bin)
Definition MemoryStream.hpp:63
uint64_t size() const override
Definition MemoryStream.hpp:71
~MemoryStream() override=default
MemoryStream(MemoryStream &&) noexcept=default
const uint8_t * start() const override
Definition MemoryStream.hpp:55
uintptr_t base_address() const
Definition MemoryStream.hpp:47
const uint8_t * p() const override
Definition MemoryStream.hpp:51
MemoryStream(uintptr_t base_address, uint64_t size)
Definition MemoryStream.hpp:35
LIEF namespace.
Definition Abstract/Binary.hpp:40
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
#define LIEF_API
Definition visibility.h:41