StormByte C++ Library: Buffer module 1.2.0
StormByte-Buffer is the buffer module of the StormByte C++ suite.
Loading...
Searching...
No Matches
List of all members
StormByte::Buffer::ExternalBufferReader Class Referencefinal

Adapter that turns any ReadOnly buffer into an ExternalReader. More...

#include <StormByte/buffer/external.hxx>

Inheritance diagram for StormByte::Buffer::ExternalBufferReader:
Inheritance graph
[legend]
Collaboration diagram for StormByte::Buffer::ExternalBufferReader:
Collaboration graph
[legend]

Public Member Functions

Constructors / destructor / assignment
 ExternalBufferReader (ReadOnly &buffer) noexcept
 Construct from a ReadOnly reference.
 
 ExternalBufferReader (const ExternalBufferReader &)=default
 
 ExternalBufferReader (ExternalBufferReader &&) noexcept=default
 
 ~ExternalBufferReader () noexcept override
 
ExternalBufferReaderoperator= (const ExternalBufferReader &)=default
 
ExternalBufferReaderoperator= (ExternalBufferReader &&) noexcept=default
 
Clonable
PointerType Clone () const noexcept override
 Polymorphic copy.
 
PointerType Move () noexcept override
 Polymorphic move.
 
Queries
std::size_t AvailableBytes () const noexcept override
 Number of bytes currently available for reading.
 
bool Empty () const noexcept override
 Whether the underlying source holds no data.
 
bool EoF () const noexcept override
 End-of-file / end-of-stream condition.
 
bool IsReadable () const noexcept override
 Whether the source can still be read.
 
Reading
bool Read (std::size_t count, DataType &out) const noexcept override
 Non-destructive read (advances the logical position).
 
bool Extract (std::size_t count, DataType &out) noexcept override
 Destructive read (consumes / erases data from the source).
 
bool Peek (std::size_t count, DataType &out) const noexcept override
 Non-destructive peek (does not advance the position).
 
void ReadUntilEoF (DataType &out) const noexcept override
 Read everything until EoF (non-destructive).
 
void ExtractUntilEoF (DataType &out) noexcept override
 Extract everything until EoF (destructive).
 
Positioning / maintenance
void Seek (std::ptrdiff_t offset, Position mode) const noexcept override
 Move the logical read position.
 
void Clean () noexcept override
 Discard already-consumed data (from start up to the current read position).
 
- Public Member Functions inherited from StormByte::Buffer::ExternalReader
 ExternalReader () noexcept=default
 
 ExternalReader (const ExternalReader &)=default
 
 ExternalReader (ExternalReader &&) noexcept=default
 
 ~ExternalReader () noexcept override
 
ExternalReaderoperator= (const ExternalReader &)=default
 
ExternalReaderoperator= (ExternalReader &&) noexcept=default
 
bool Read (DataType &out) const noexcept
 Convenience overload — read all available bytes.
 
bool Extract (DataType &out) noexcept
 Convenience overload — extract all available bytes.
 

Detailed Description

Adapter that turns any ReadOnly buffer into an ExternalReader.

Note
Does not take ownership of the referenced buffer. The caller must guarantee that the ReadOnly object outlives this adapter.
See also
ExternalReader, ReadOnly

Constructor & Destructor Documentation

◆ ExternalBufferReader() [1/3]

StormByte::Buffer::ExternalBufferReader::ExternalBufferReader ( ReadOnly buffer)
inlineexplicitnoexcept

Construct from a ReadOnly reference.

Parameters
bufferBuffer to adapt (must outlive this object).

◆ ExternalBufferReader() [2/3]

StormByte::Buffer::ExternalBufferReader::ExternalBufferReader ( const ExternalBufferReader )
default

◆ ExternalBufferReader() [3/3]

StormByte::Buffer::ExternalBufferReader::ExternalBufferReader ( ExternalBufferReader &&  )
defaultnoexcept

◆ ~ExternalBufferReader()

StormByte::Buffer::ExternalBufferReader::~ExternalBufferReader ( )
overridenoexcept

Member Function Documentation

◆ AvailableBytes()

std::size_t StormByte::Buffer::ExternalBufferReader::AvailableBytes ( ) const
overridevirtualnoexcept

Number of bytes currently available for reading.

Returns
Bytes that can be read without blocking (or until EoF).

Implements StormByte::Buffer::ExternalReader.

◆ Clean()

void StormByte::Buffer::ExternalBufferReader::Clean ( )
overridevirtualnoexcept

Discard already-consumed data (from start up to the current read position).

Note
Default implementation is a no-op.

Reimplemented from StormByte::Buffer::ExternalReader.

◆ Clone()

PointerType StormByte::Buffer::ExternalBufferReader::Clone ( ) const
overridenoexcept

Polymorphic copy.

Returns
New adapter referring to the same ReadOnly.

◆ Empty()

bool StormByte::Buffer::ExternalBufferReader::Empty ( ) const
overridevirtualnoexcept

Whether the underlying source holds no data.

Returns
true if no data remains.

Implements StormByte::Buffer::ExternalReader.

◆ EoF()

bool StormByte::Buffer::ExternalBufferReader::EoF ( ) const
overridevirtualnoexcept

End-of-file / end-of-stream condition.

Returns
true when the source is closed (or in error) and no more bytes are available.

Implements StormByte::Buffer::ExternalReader.

◆ Extract()

bool StormByte::Buffer::ExternalBufferReader::Extract ( std::size_t  count,
DataType out 
)
overridevirtualnoexcept

Destructive read (consumes / erases data from the source).

Parameters
countNumber of bytes requested (0 = all available).
outDestination buffer (appended to).
Returns
true on success, false on insufficient data or error.

Implements StormByte::Buffer::ExternalReader.

◆ ExtractUntilEoF()

void StormByte::Buffer::ExternalBufferReader::ExtractUntilEoF ( DataType out)
overridevirtualnoexcept

Extract everything until EoF (destructive).

Parameters
outDestination buffer.

Implements StormByte::Buffer::ExternalReader.

◆ IsReadable()

bool StormByte::Buffer::ExternalBufferReader::IsReadable ( ) const
overridevirtualnoexcept

Whether the source can still be read.

Returns
false when the source is in a permanent error state.

Implements StormByte::Buffer::ExternalReader.

◆ Move()

PointerType StormByte::Buffer::ExternalBufferReader::Move ( )
overridenoexcept

Polymorphic move.

Returns
New adapter taking over this instance’s reference.

◆ operator=() [1/2]

ExternalBufferReader & StormByte::Buffer::ExternalBufferReader::operator= ( const ExternalBufferReader )
default

◆ operator=() [2/2]

ExternalBufferReader & StormByte::Buffer::ExternalBufferReader::operator= ( ExternalBufferReader &&  )
defaultnoexcept

◆ Peek()

bool StormByte::Buffer::ExternalBufferReader::Peek ( std::size_t  count,
DataType out 
) const
overridevirtualnoexcept

Non-destructive peek (does not advance the position).

Parameters
countNumber of bytes requested (0 = all available).
outDestination buffer (appended to).
Returns
true on success, false on insufficient data or error.

Implements StormByte::Buffer::ExternalReader.

◆ Read()

bool StormByte::Buffer::ExternalBufferReader::Read ( std::size_t  count,
DataType out 
) const
overridevirtualnoexcept

Non-destructive read (advances the logical position).

Parameters
countNumber of bytes requested (0 = all available).
outDestination buffer (appended to).
Returns
true on success, false on insufficient data or error.

Implements StormByte::Buffer::ExternalReader.

◆ ReadUntilEoF()

void StormByte::Buffer::ExternalBufferReader::ReadUntilEoF ( DataType out) const
overridevirtualnoexcept

Read everything until EoF (non-destructive).

Parameters
outDestination buffer.

Implements StormByte::Buffer::ExternalReader.

◆ Seek()

void StormByte::Buffer::ExternalBufferReader::Seek ( std::ptrdiff_t  offset,
Position  mode 
) const
overridevirtualnoexcept

Move the logical read position.

Parameters
offsetOffset value.
modePosition::Absolute or Position::Relative.
Note
Default implementation is a no-op. Concrete adapters that support seeking should override it.

Reimplemented from StormByte::Buffer::ExternalReader.


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