16#ifndef LIEF_FILE_STREAM_H
17#define LIEF_FILE_STREAM_H
46 uint64_t
size()
const override {
58 uint64_t = 0)
const override {
59 if (offset > size_ || offset +
size > size_) {
62 const auto pos = ifs_.tellg();
64 ifs_.read(
static_cast<char*
>(dst),
size);
74 mutable std::ifstream ifs_;
STREAM_TYPE
Definition BinaryStream.hpp:37
@ FILE
Definition BinaryStream.hpp:42
size_t pos() const
Definition BinaryStream.hpp:181
BinaryStream(STREAM_TYPE type)
Definition BinaryStream.hpp:47
STREAM_TYPE type() const
Definition BinaryStream.hpp:52
static result< FileStream > from_file(const std::string &file)
FileStream(FileStream &&other) noexcept=default
FileStream(std::ifstream fs, uint64_t size)
Definition FileStream.hpp:33
ok_error_t peek_in(void *dst, uint64_t offset, uint64_t size, uint64_t=0) const override
Definition FileStream.hpp:57
std::vector< uint8_t > content() const
FileStream & operator=(FileStream &&other) noexcept=default
FileStream(const FileStream &)=delete
~FileStream() override=default
static bool classof(const BinaryStream &stream)
Definition FileStream.hpp:53
result< const void * > read_at(uint64_t, uint64_t, uint64_t) const override
Definition FileStream.hpp:69
uint64_t size() const override
Definition FileStream.hpp:46
FileStream & operator=(const FileStream &)=delete
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:114
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:77
@ not_supported
Definition errors.hpp:28
@ read_error
Definition errors.hpp:25
tl::unexpected< lief_errors > make_error_code(lief_errors e)
Create an standard error code from lief_errors.
Definition errors.hpp:53
LIEF namespace.
Definition Abstract/Binary.hpp:40
ok_t ok()
Return success for function with return type ok_error_t.
Definition errors.hpp:98
#define LIEF_API
Definition visibility.h:43