LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::FileStream Class Reference

Stream interface over a std::ifstream More...

#include <FileStream.hpp>

Inheritance diagram for LIEF::FileStream:
Collaboration diagram for LIEF::FileStream:

Public Member Functions

 FileStream (std::ifstream fs, uint64_t size)
 
 FileStream ()=delete
 
 FileStream (const FileStream &)=delete
 
FileStreamoperator= (const FileStream &)=delete
 
 FileStream (FileStream &&other) noexcept=default
 
FileStreamoperator= (FileStream &&other) noexcept=default
 
uint64_t size () const override
 
std::vector< uint8_t > content () const
 
 ~FileStream () override=default
 
ok_error_t peek_in (void *dst, uint64_t offset, uint64_t size, uint64_t=0) const override
 
result< const void * > read_at (uint64_t, uint64_t, uint64_t) const override
 
- Public Member Functions inherited from LIEF::BinaryStream
 BinaryStream (STREAM_TYPE type)
 
virtual ~BinaryStream ()=default
 
STREAM_TYPE type () const
 
result< uint64_t > read_uleb128 () const
 
result< uint64_t > read_sleb128 () const
 
result< int64_t > read_dwarf_encoded (uint8_t encoding) const
 
result< std::string > read_string (size_t maxsize=~static_cast< size_t >(0)) const
 
result< std::string > peek_string (size_t maxsize=~static_cast< size_t >(0)) const
 
result< std::string > peek_string_at (size_t offset, size_t maxsize=~static_cast< size_t >(0)) const
 
result< std::u16string > read_u16string () const
 
result< std::u16string > peek_u16string () const
 
result< std::string > read_mutf8 (size_t maxsize=~static_cast< size_t >(0)) const
 
result< std::u16string > read_u16string (size_t length) const
 
result< std::u16string > peek_u16string (size_t length) const
 
result< std::u16string > peek_u16string_at (size_t offset, size_t length) const
 
virtual ok_error_t peek_data (std::vector< uint8_t > &container, uint64_t offset, uint64_t size, uint64_t virtual_address=0)
 
virtual ok_error_t read_data (std::vector< uint8_t > &container, uint64_t size)
 
template<class T >
ok_error_t read_objects (std::vector< T > &container, uint64_t count)
 
template<class T >
ok_error_t peek_objects (std::vector< T > &container, uint64_t count)
 
template<class T >
ok_error_t peek_objects_at (uint64_t offset, std::vector< T > &container, uint64_t count)
 
void setpos (size_t pos) const
 
void increment_pos (size_t value) const
 
void decrement_pos (size_t value) const
 
size_t pos () const
 
 operator bool () const
 
template<class T >
const T * read_array (size_t size) const
 
template<class T >
result< T > peek () const
 
template<class T >
result< T > peek (size_t offset) const
 
template<class T >
const T * peek_array (size_t size) const
 
template<class T >
const T * peek_array (size_t offset, size_t size) const
 
template<class T >
result< T > read () const
 
template<typename T >
bool can_read () const
 
template<typename T >
bool can_read (size_t offset) const
 
bool can_read (int64_t offset, int64_t size) const
 
size_t align (size_t align_on) const
 
void set_endian_swap (bool swap)
 
bool should_swap () const
 
virtual const uint8_t * p () const
 
virtual uint8_t * start ()
 
virtual uint8_t * p ()
 
virtual uint8_t * end ()
 
virtual const uint8_t * start () const
 
virtual const uint8_t * end () const
 

Static Public Member Functions

static result< FileStreamfrom_file (const std::string &file)
 
static bool classof (const BinaryStream &stream)
 
- Static Public Member Functions inherited from LIEF::BinaryStream
template<class T >
static bool is_all_zero (const T &buffer)
 

Additional Inherited Members

- Public Types inherited from LIEF::BinaryStream
enum class  STREAM_TYPE {
  UNKNOWN = 0 , VECTOR , MEMORY , SPAN ,
  FILE , ELF_DATA_HANDLER
}
 

Detailed Description

Stream interface over a std::ifstream

Constructor & Destructor Documentation

◆ FileStream() [1/4]

LIEF::FileStream::FileStream ( std::ifstream fs,
uint64_t size )
inline

◆ FileStream() [2/4]

LIEF::FileStream::FileStream ( )
delete

◆ FileStream() [3/4]

LIEF::FileStream::FileStream ( const FileStream & )
delete

◆ FileStream() [4/4]

LIEF::FileStream::FileStream ( FileStream && other)
defaultnoexcept

◆ ~FileStream()

LIEF::FileStream::~FileStream ( )
overridedefault

Member Function Documentation

◆ classof()

static bool LIEF::FileStream::classof ( const BinaryStream & stream)
inlinestatic

◆ content()

std::vector< uint8_t > LIEF::FileStream::content ( ) const

◆ from_file()

static result< FileStream > LIEF::FileStream::from_file ( const std::string & file)
static

◆ operator=() [1/2]

FileStream & LIEF::FileStream::operator= ( const FileStream & )
delete

◆ operator=() [2/2]

FileStream & LIEF::FileStream::operator= ( FileStream && other)
defaultnoexcept

◆ peek_in()

ok_error_t LIEF::FileStream::peek_in ( void * dst,
uint64_t offset,
uint64_t size,
uint64_t = 0 ) const
inlineoverridevirtual

Reimplemented from LIEF::BinaryStream.

References make_error_code(), LIEF::ok(), and read_error.

◆ read_at()

result< const void * > LIEF::FileStream::read_at ( uint64_t ,
uint64_t ,
uint64_t  ) const
inlineoverridevirtual

Implements LIEF::BinaryStream.

References make_error_code(), and not_supported.

◆ size()

uint64_t LIEF::FileStream::size ( ) const
inlineoverridevirtual

Implements LIEF::BinaryStream.


The documentation for this class was generated from the following file: