xentara-utils v2.0.4
The Xentara Utility Library
|
Base class for output streams that use a private allocated write buffer. More...
#include <xentara/utils/io/AbstractBufferedOutputStream.hpp>
Public Member Functions | |
AbstractBufferedOutputStream ()=default | |
Default constructor Creates a stream without a buffer. | |
Public Member Functions inherited from xentara::utils::io::OutputStream< Element > | |
virtual | ~OutputStream () noexcept(false)=0 |
Virtual, throwing destructor. | |
auto | write (Element element) -> void |
Write a single element to the stream. | |
template<std::ranges::contiguous_range Data> requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<Data>>, Element> | |
auto | write (const Data &data) -> void |
Write a block of data. | |
template<std::size_t kDataSize> | |
auto | write (const Element(&data)[kDataSize]) -> void |
Write a block of data contained in an array. | |
template<std::contiguous_iterator Iterator, std::sized_sentinel_for< Iterator > Sentinel> requires std::same_as<std::remove_cv_t<std::iter_value_t<Iterator>>, Element> | |
auto | write (Iterator first, Sentinel last) -> void |
Write a block of data contained in an iterator range. | |
auto | write (const Element *data, std::size_t size) -> void |
Write a block of data contained in a region of memory. | |
auto | write (const Element *nullTerminatedString) -> void |
Write a NULL-teminated string. | |
auto | flush () -> void |
Flushes the buffer. | |
Public Member Functions inherited from xentara::utils::io::StreamBase | |
virtual | ~StreamBase () noexcept(false)=0 |
Virtual, throwing destructor. | |
auto | streamDescription () const -> std::string |
Get a description of the device. | |
Protected Member Functions | |
auto | resetOutputBuffer (std::size_t bufferSizeHint=kDefaultBufferSize) -> void |
Resets the buffer. | |
auto | destroyOutputBuffer () -> void |
Destroys the buffer. | |
Protected Member Functions inherited from xentara::utils::io::OutputStream< Element > | |
OutputStream () noexcept=default | |
Default constructor. | |
OutputStream (Element *bufferBegin, Element *bufferEnd) noexcept | |
Constructor that sets an initially empty buffer. | |
OutputStream (Element *bufferBegin, Element *bufferEnd, Element *dataEnd) noexcept | |
Constructor that sets a buffer that possibly already contains some data. | |
OutputStream (OutputStream &&other) noexcept | |
Move constructor. | |
auto | operator= (OutputStream &&rhs) noexcept -> OutputStream & |
Move assignemnt operator. | |
auto | setWriteBuffer (Element *bufferBegin, Element *bufferEnd) noexcept -> void |
Sets a new empty buffer. | |
auto | setWriteBuffer (Element *bufferBegin, Element *bufferEnd, Element *dataEnd) noexcept -> void |
Sets the buffer. | |
auto | setWriteDataEnd (Element *dataEnd) noexcept -> void |
Sets the end of the data within the buffer. | |
auto | writeBufferBegin () const -> Element * |
Writes back the buffer start position. | |
auto | writeBufferEnd () const -> Element * |
Writes back the buffer end position. | |
auto | writeBufferSize () const -> std::size_t |
Gets the buffer size. | |
auto | writeDataBegin () const -> Element * |
Returns the beginning of data in the buffer. | |
auto | writeDataEnd () const -> Element * |
Returns the end of the data in the buffer. | |
auto | writeDataSize () const -> std::size_t |
Returns the size of the unwritten data in the buffer. | |
auto | freeBufferBegin () const -> Element * |
Returns the beginning of the free region of the buffer. | |
auto | freeBufferSize () const -> std::size_t |
Returns the size of the unwritten data in the buffer. | |
virtual auto | doFlushWriteBuffer () -> void |
Called by the framework to write the buffered data to the underlying device once it is full. | |
virtual auto | doWrite (const Element *data, std::size_t size) -> std::size_t=0 |
Called by the framework to write data from a memory region to the underlying device. | |
Protected Member Functions inherited from xentara::utils::io::StreamBase | |
virtual auto | doGetStreamDescription () const -> std::string=0 |
Called by the framework to get a description of the stream. | |
Static Protected Attributes | |
static const std::size_t | kDefaultBufferSize |
The default buffer size. | |
Additional Inherited Members | |
Public Types inherited from xentara::utils::io::OutputStream< Element > | |
using | element_type = Element |
The element type. | |
Base class for output streams that use a private allocated write buffer.
|
default |
Default constructor Creates a stream without a buffer.
|
protected |
Destroys the buffer.
|
protected |
Resets the buffer.
This function empties the buffer if it exists, or creates a new buffer if not.
bufferSizeHint | The size of the new buffer if none exists yet. Ignored if there is a buffer already. |
|
staticprotected |
The default buffer size.