RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Linker::BufferWriter Class Reference

Writer subclass that stores data into an internal buffer. More...

#include <writer.h>

Inheritance diagram for Linker::BufferWriter:
Linker::Writer

Public Member Functions

 BufferWriter (EndianType endiantype, std::shared_ptr< Linker::Buffer > buffer)
 
void WriteData (size_t count, const void *data) override
 Write out a sequence of bytes.
 
void Seek (offset_t offset) override
 Jump to a specific location in the ouput stream.
 
void Skip (relative_offset_t offset) override
 Jump to a distance in the output stream.
 
void SeekEnd (relative_offset_t offset=0) override
 Jump to a specific offset from the end.
 
offset_t Tell () override
 Retrieve the current location.
 
- Public Member Functions inherited from Linker::Writer
 Writer (EndianType endiantype)
 
size_t WriteData (size_t max_count, const std::vector< uint8_t > &data, size_t offset=0)
 Write out a sequence of bytes.
 
size_t WriteData (const std::vector< uint8_t > &data, size_t offset=0)
 Write out a sequence of bytes.
 
template<class T , std::size_t N>
void WriteData (const std::array< T, N > &data, size_t offset=0)
 Write out a sequence of bytes.
 
void WriteData (size_t count, std::string text, char padding='\0')
 Write a string, possibly truncated or zero padded.
 
void WriteData (std::string text)
 Write a string.
 
void WriteData (size_t count, std::istream &in)
 Write data using an input stream as the source of data.
 
void WriteWord (size_t bytes, uint64_t value, EndianType endiantype)
 Write a word.
 
void WriteWord (size_t bytes, uint64_t value)
 Write a word.
 
template<typename Clock >
void WriteTimestamp (Timestamp< Clock > timestamp, EndianType endiantype)
 Write a date-time value according to some epoch.
 
template<typename Clock >
void WriteTimestamp (Timestamp< Clock > timestamp)
 Write a date-time value according to some epoch.
 
void FillTo (offset_t position)
 Move to a specific offset, fill with zeroes if needed.
 
void AlignTo (offset_t align)
 Align the current pointer.
 

Public Attributes

std::shared_ptr< Linker::Buffer > buffer
 
offset_t position = 0
 
- Public Attributes inherited from Linker::Writer
EndianType endiantype
 The default endianness of the binary format, used for reading multibyte numeric data.
 

Detailed Description

Writer subclass that stores data into an internal buffer.

Member Function Documentation

◆ Seek()

void BufferWriter::Seek ( offset_t  offset)
overridevirtual

Jump to a specific location in the ouput stream.

Implements Linker::Writer.

◆ SeekEnd()

void BufferWriter::SeekEnd ( relative_offset_t  offset = 0)
overridevirtual

Jump to a specific offset from the end.

Implements Linker::Writer.

◆ Skip()

void BufferWriter::Skip ( relative_offset_t  offset)
overridevirtual

Jump to a distance in the output stream.

Implements Linker::Writer.

◆ Tell()

offset_t BufferWriter::Tell ( )
overridevirtual

Retrieve the current location.

Implements Linker::Writer.

◆ WriteData()

void BufferWriter::WriteData ( size_t  count,
const void *  data 
)
overridevirtual

Write out a sequence of bytes.

Implements Linker::Writer.


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