roo_io
API Documentation for roo_io
Loading...
Searching...
No Matches
roo_io::BufferedOutputStreamIterator Class Reference

#include <buffered_output_stream_iterator.h>

Public Member Functions

 BufferedOutputStreamIterator ()
 Creates a detached iterator with kClosed status.
 
 BufferedOutputStreamIterator (BufferedOutputStreamIterator &&other)
 Move-constructs iterator state.
 
BufferedOutputStreamIteratoroperator= (BufferedOutputStreamIterator &&other)
 Move-assigns iterator state.
 
 BufferedOutputStreamIterator (roo_io::OutputStream &output)
 Creates iterator over output.
 
 ~BufferedOutputStreamIterator ()
 Flushes pending output on destruction.
 
void write (byte v)
 Writes one byte.
 
size_t write (const byte *buf, size_t count)
 Writes up to count bytes.
 
void flush ()
 Flushes buffered data and then flushes underlying stream.
 
Status status () const
 Returns current iterator status.
 
bool ok () const
 Returns whether status() == kOk.
 
void reset ()
 Detaches from stream and releases internal buffer.
 
void reset (roo_io::OutputStream &output)
 Rebinds iterator to output and clears buffered state.
 

Detailed Description

Definition at line 13 of file buffered_output_stream_iterator.h.

Constructor & Destructor Documentation

◆ BufferedOutputStreamIterator() [1/3]

roo_io::BufferedOutputStreamIterator::BufferedOutputStreamIterator ( )
inline

Creates a detached iterator with kClosed status.

Definition at line 16 of file buffered_output_stream_iterator.h.

◆ BufferedOutputStreamIterator() [2/3]

roo_io::BufferedOutputStreamIterator::BufferedOutputStreamIterator ( BufferedOutputStreamIterator &&  other)
inline

Move-constructs iterator state.

Source iterator becomes detached with kClosed status.

Definition at line 25 of file buffered_output_stream_iterator.h.

References roo_io::kClosed, and roo_io::kOutputStreamIteratorBufferSize.

◆ BufferedOutputStreamIterator() [3/3]

roo_io::BufferedOutputStreamIterator::BufferedOutputStreamIterator ( roo_io::OutputStream output)
inline

Creates iterator over output.

Initializes status() from output.status(). Allocates internal buffer only when initial status is kOk.

Definition at line 56 of file buffered_output_stream_iterator.h.

References roo_io::kOk, and roo_io::kOutputStreamIteratorBufferSize.

◆ ~BufferedOutputStreamIterator()

roo_io::BufferedOutputStreamIterator::~BufferedOutputStreamIterator ( )
inline

Flushes pending output on destruction.

Definition at line 67 of file buffered_output_stream_iterator.h.

References flush().

Member Function Documentation

◆ flush()

void roo_io::BufferedOutputStreamIterator::flush ( )
inline

Flushes buffered data and then flushes underlying stream.

If status() != kOk, this call is a no-op. Updates status() from output.status().

Definition at line 114 of file buffered_output_stream_iterator.h.

References roo_io::OutputStream::flush(), roo_io::kOk, and roo_io::OutputStream::status().

Referenced by roo_io::OutputStreamWriter::close(), roo_io::OutputStreamWriter::flush(), and ~BufferedOutputStreamIterator().

◆ ok()

bool roo_io::BufferedOutputStreamIterator::ok ( ) const
inline

Returns whether status() == kOk.

Returns
true iff current status is kOk.

Definition at line 130 of file buffered_output_stream_iterator.h.

References roo_io::kOk, and status().

Referenced by roo_io::OutputStreamWriter::ok().

◆ operator=()

BufferedOutputStreamIterator & roo_io::BufferedOutputStreamIterator::operator= ( BufferedOutputStreamIterator &&  other)
inline

Move-assigns iterator state.

Source iterator becomes detached with kClosed status.

Definition at line 38 of file buffered_output_stream_iterator.h.

References roo_io::kClosed, and roo_io::kOutputStreamIteratorBufferSize.

◆ reset() [1/2]

void roo_io::BufferedOutputStreamIterator::reset ( )
inline

◆ reset() [2/2]

void roo_io::BufferedOutputStreamIterator::reset ( roo_io::OutputStream output)
inline

Rebinds iterator to output and clears buffered state.

Updates status() to output.status(). Allocates buffer lazily when needed and status is kOk.

Definition at line 146 of file buffered_output_stream_iterator.h.

References roo_io::kOk, and roo_io::kOutputStreamIteratorBufferSize.

◆ status()

Status roo_io::BufferedOutputStreamIterator::status ( ) const
inline

Returns current iterator status.

Returns
Current status value.

Definition at line 125 of file buffered_output_stream_iterator.h.

Referenced by ok(), and roo_io::OutputStreamWriter::status().

◆ write() [1/2]

void roo_io::BufferedOutputStreamIterator::write ( byte  v)
inline

Writes one byte.

If output is healthy, byte is buffered and may trigger flushing buffered block first. If status() != kOk and buffer is full, call is a no-op. Updates status() through internal buffer flush.

Definition at line 74 of file buffered_output_stream_iterator.h.

References roo_io::kOk, and roo_io::kOutputStreamIteratorBufferSize.

Referenced by roo_io::OutputStreamWriter::write().

◆ write() [2/2]

size_t roo_io::BufferedOutputStreamIterator::write ( const byte buf,
size_t  count 
)
inline

Writes up to count bytes.

May buffer bytes or write directly to underlying stream. If stream is not writable at entry and no buffer space is available, returns zero. Updates status() after delegated writes/flushes.

Returns
Number of bytes accepted from buf.

Definition at line 90 of file buffered_output_stream_iterator.h.

References roo_io::count, roo_io::kOk, roo_io::kOutputStreamIteratorBufferSize, roo_io::OutputStream::status(), and roo_io::OutputStream::write().


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