51 virtual unsigned long long Seek(
const long long AOffset,
const SeekLocation ALocation)
const = 0;
62 virtual unsigned long long Read(
void*
const ABuffer,
const unsigned long long AMaxAmount)
const = 0;
72 virtual unsigned long long Write(
const void*
const ABuffer,
const unsigned long long AAmount) = 0;
87 virtual unsigned long long CursorPosition(
void)
const noexcept = 0;
96 virtual unsigned long long Seek(
const long long AOffset,
const SeekLocation ALocation)
const noexcept = 0;
107 virtual unsigned long long Read(
void*
const ABuffer,
const unsigned long long AMaxAmount)
const noexcept = 0;
116 virtual unsigned long long Write(
const void*
const ABuffer,
const unsigned long long AAmount) noexcept = 0;
Seek from the end of the Stream.
unsigned char byte
It's a byte, 8 bits, etc...
Mode
The available operations for the Stream. Bitset.
SeekLocation
The location to begin a seek operation at.
virtual unsigned long long Read(void *const ABuffer, const unsigned long long AMaxAmount) const =0
Read data from a Stream at the current cursor position and advance the cursor by that amount...
virtual unsigned long long CursorPosition(void) const =0
Get the current position of the read/write cursor in the Stream. Equivalent of Seek(0, SeekLocation::CURSOR)
virtual unsigned long long Write(const void *const ABuffer, const unsigned long long AAmount)=0
Write data to the Stream at the current cursor position and advance the cursor by that amount...
The interface for streaming reads and writes.
A Stream guaranteed to not throw exceptions.
virtual unsigned long long Seek(const long long AOffset, const SeekLocation ALocation) const noexcept=0
Set the cursor position in the Stream.
virtual unsigned long long CursorPosition(void) const noexcept=0
Get the current position of the read/write cursor in the Stream. Equivalent of Seek(0, SeekLocation::CURSOR)
virtual void Capabilities(Mode &AMode, bool &ASeek) const noexcept=0
Get the capabilities of the stream.
virtual unsigned long long Read(void *const ABuffer, const unsigned long long AMaxAmount) const noexcept=0
Read data from a Stream at the current cursor position and advance the cursor by that amount...
Seek from the beginning of the Stream.
Seek from the cursor position.
virtual unsigned long long Seek(const long long AOffset, const SeekLocation ALocation) const =0
Set the cursor position in the Stream.
virtual unsigned long long Write(const void *const ABuffer, const unsigned long long AAmount) noexcept=0
Write data to the Stream at the current cursor position and advance the cursor by that amount...