|
xentara-utils v2.0.6
The Xentara Utility Library
|
Base class for output streams that use a private allocated write buffer. More...
#include <xentara/utils/io/AbstractBufferedOutputStream.hpp>
Inheritance diagram for xentara::utils::io::AbstractBufferedOutputStream< Element >: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.