#include <stream.h>
Public Member Functions | |
Stream (MultiBuf &multibuf) | |
constexpr const MultiBuf & | multibuf () const |
Returns the MultiBuf backing this stream. | |
![]() | |
SeekableReader & | as_seekable_reader () |
const SeekableReader & | as_seekable_reader () const |
operator SeekableReader & () | |
operator const SeekableReader & () const | |
SeekableWriter & | as_seekable_writer () |
const SeekableWriter & | as_seekable_writer () const |
operator SeekableWriter & () | |
operator const SeekableWriter & () const | |
![]() | |
operator RelativeSeekableReader & () | |
operator const RelativeSeekableReader & () const | |
operator RelativeSeekableWriter & () | |
operator const RelativeSeekableWriter & () const | |
![]() | |
Reader & | as_reader () |
const Reader & | as_reader () const |
operator Reader & () | |
operator const Reader & () const | |
Writer & | as_writer () |
const Writer & | as_writer () const |
operator Writer & () | |
operator const Writer & () const | |
![]() | |
constexpr bool | readable () const |
constexpr bool | writable () const |
constexpr bool | seekable () const |
constexpr bool | seekable (Whence origin) const |
True if the stream supports seeking from the specified origin. | |
Result< ByteSpan > | Read (ByteSpan dest) |
Result< ByteSpan > | Read (void *dest, size_t size_bytes) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Result< ByteSpan > | ReadExact (ByteSpan const buffer) |
Status | Write (ConstByteSpan data) |
Status | Write (const void *data, size_t size_bytes) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Status | Write (const std::byte b) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Status | Seek (ptrdiff_t offset, Whence origin=kBeginning) |
size_t | Tell () |
size_t | ConservativeReadLimit () const |
size_t | ConservativeWriteLimit () const |
Private Member Functions | |
Status | DoWrite (ConstByteSpan data) override |
Virtual Write() function implemented by derived classes. | |
StatusWithSize | DoRead (ByteSpan destination) override |
Virtual Read() function implemented by derived classes. | |
Status | DoSeek (ptrdiff_t offset, Whence origin) override |
size_t | DoTell () override |
size_t | ConservativeLimit (LimitType) const override |
Additional Inherited Members | |
![]() | |
enum | Whence : uint8_t { kBeginning = 0b001 , kCurrent = 0b010 , kEnd = 0b100 } |
Positions from which to seek. More... | |
![]() | |
static constexpr size_t | kUnlimited = std::numeric_limits<size_t>::max() |
Value returned from read/write limit if unlimited. | |
static constexpr size_t | kUnknownPosition = std::numeric_limits<size_t>::max() |
Returned by Tell() if getting the position is not supported. | |
![]() | |
enum class | LimitType : bool { kRead , kWrite } |
|
inlineoverrideprivatevirtual |
Virtual function optionally implemented by derived classes that is used for ConservativeReadLimit() and ConservativeWriteLimit().
The default implementation returns kUnlimited or 0
depending on whether the stream is readable/writable.
Reimplemented from pw::stream::Stream.
|
overrideprivatevirtual |
Virtual Read() function implemented by derived classes.
Implements pw::stream::Stream.
Seeks the writer's cursor position within the multibuf. Only forward seeking is permitted; attempting to seek backwards will result in an OUT_OF_RANGE
. This operation is O(multibuf().Chunks().size())
.
Implements pw::stream::Stream.
|
inlineoverrideprivatevirtual |
Virtual Tell() function optionally implemented by derived classes. The default implementation always returns kUnknownPosition.
Reimplemented from pw::stream::Stream.
|
overrideprivatevirtual |
Virtual Write() function implemented by derived classes.
Implements pw::stream::Stream.