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::ExternalBufferWriter Class Referencefinal

Adapter that turns any WriteOnly buffer into an ExternalWriter. More...

#include <StormByte/buffer/external.hxx>

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

Public Member Functions

Constructors / destructor / assignment
 ExternalBufferWriter (WriteOnly &buffer) noexcept
 Construct from a WriteOnly reference.
 
 ExternalBufferWriter (const ExternalBufferWriter &)=default
 
 ExternalBufferWriter (ExternalBufferWriter &&) noexcept=default
 
 ~ExternalBufferWriter () noexcept override
 
ExternalBufferWriteroperator= (const ExternalBufferWriter &)=default
 
ExternalBufferWriteroperator= (ExternalBufferWriter &&) noexcept=default
 
Clonable
PointerType Clone () const noexcept override
 Polymorphic copy.
 
PointerType Move () noexcept override
 Polymorphic move.
 
Queries / writing / lifecycle

All operations forward to the referenced WriteOnly.

bool IsWritable () const noexcept override
 Whether the sink still accepts writes.
 
bool Write (const DataType &data) noexcept override
 Write (copy) a full byte vector.
 
bool Write (DataType &&data) noexcept override
 Write (move) a full byte vector.
 
bool Write (std::size_t count, const DataType &data) noexcept override
 Write up to count bytes from a vector (copy).
 
bool Write (std::size_t count, DataType &&data) noexcept override
 Write up to count bytes from a vector (move).
 
void Close () noexcept override
 Mark the sink closed for further writes.
 
void SetError () noexcept override
 Put the sink into a permanent error state.
 
- Public Member Functions inherited from StormByte::Buffer::ExternalWriter
 ExternalWriter () noexcept=default
 
 ExternalWriter (const ExternalWriter &)=default
 
 ExternalWriter (ExternalWriter &&) noexcept=default
 
 ~ExternalWriter () noexcept override
 
ExternalWriteroperator= (const ExternalWriter &)=default
 
ExternalWriteroperator= (ExternalWriter &&) noexcept=default
 
bool Write (std::string_view sv) noexcept
 Write a string view (no terminating NUL).
 
bool Write (const char *s) noexcept
 Write a null-terminated C string.
 
bool Write (std::size_t count, std::string_view sv) noexcept
 Write up to count characters from a string view.
 
template<std::size_t N>
bool Write (const char(&s)[N]) noexcept
 Write a string literal without the trailing NUL.
 

Detailed Description

Adapter that turns any WriteOnly buffer into an ExternalWriter.

Note
Does not take ownership of the referenced buffer. The caller must guarantee that the WriteOnly object outlives this adapter.

Close() and SetError() are forwarded to the underlying WriteOnly (which declares those operations as pure virtuals).

See also
ExternalWriter, WriteOnly, Producer, Ring

Constructor & Destructor Documentation

◆ ExternalBufferWriter() [1/3]

StormByte::Buffer::ExternalBufferWriter::ExternalBufferWriter ( WriteOnly buffer)
inlineexplicitnoexcept

Construct from a WriteOnly reference.

Parameters
bufferBuffer to adapt (must outlive this object).

◆ ExternalBufferWriter() [2/3]

StormByte::Buffer::ExternalBufferWriter::ExternalBufferWriter ( const ExternalBufferWriter )
default

◆ ExternalBufferWriter() [3/3]

StormByte::Buffer::ExternalBufferWriter::ExternalBufferWriter ( ExternalBufferWriter &&  )
defaultnoexcept

◆ ~ExternalBufferWriter()

StormByte::Buffer::ExternalBufferWriter::~ExternalBufferWriter ( )
overridenoexcept

Member Function Documentation

◆ Clone()

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

Polymorphic copy.

Returns
New adapter referring to the same WriteOnly.

◆ Close()

void StormByte::Buffer::ExternalBufferWriter::Close ( )
overridevirtualnoexcept

Mark the sink closed for further writes.

Subsequent Write() calls must fail. Readers can still drain remaining data. Implementations should wake any waiting readers.

Implements StormByte::Buffer::ExternalWriter.

◆ IsWritable()

bool StormByte::Buffer::ExternalBufferWriter::IsWritable ( ) const
overridevirtualnoexcept

Whether the sink still accepts writes.

Returns
false when the sink has been closed or is in error state.

Implements StormByte::Buffer::ExternalWriter.

◆ Move()

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

Polymorphic move.

Returns
New adapter taking over this instance’s reference.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ SetError()

void StormByte::Buffer::ExternalBufferWriter::SetError ( )
overridevirtualnoexcept

Put the sink into a permanent error state.

Makes the sink unreadable and unwritable from the buffer’s perspective. Implementations should wake any waiters.

Implements StormByte::Buffer::ExternalWriter.

◆ Write() [1/4]

bool StormByte::Buffer::ExternalBufferWriter::Write ( const DataType data)
overridevirtualnoexcept

Write (copy) a full byte vector.

Parameters
dataData to append.
Returns
true on success, false if the sink is closed / in error.

Implements StormByte::Buffer::ExternalWriter.

◆ Write() [2/4]

bool StormByte::Buffer::ExternalBufferWriter::Write ( DataType &&  data)
overridevirtualnoexcept

Write (move) a full byte vector.

Parameters
dataData to append (emptied on success when the implementation moves).
Returns
true on success, false if the sink is closed / in error.

Implements StormByte::Buffer::ExternalWriter.

◆ Write() [3/4]

bool StormByte::Buffer::ExternalBufferWriter::Write ( std::size_t  count,
const DataType data 
)
overridevirtualnoexcept

Write up to count bytes from a vector (copy).

Parameters
countMaximum bytes to write (0 = entire vector).
dataSource vector.
Returns
true on success, false if the sink is closed / in error.

Implements StormByte::Buffer::ExternalWriter.

◆ Write() [4/4]

bool StormByte::Buffer::ExternalBufferWriter::Write ( std::size_t  count,
DataType &&  data 
)
overridevirtualnoexcept

Write up to count bytes from a vector (move).

Parameters
countMaximum bytes to write (0 = entire vector).
dataSource vector (may be modified on success).
Returns
true on success, false if the sink is closed / in error.

Implements StormByte::Buffer::ExternalWriter.


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