Pigweed
 
Loading...
Searching...
No Matches
pw::stream::RelativeSeekableReaderWriter Class Reference

#include <stream.h>

Inheritance diagram for pw::stream::RelativeSeekableReaderWriter:
pw::stream::ReaderWriter pw::stream::Stream pw::stream::SeekableReaderWriter pw::multibuf::Stream

Public Member Functions

 operator RelativeSeekableReader & ()
 
 operator const RelativeSeekableReader & () const
 
 operator RelativeSeekableWriter & ()
 
 operator const RelativeSeekableWriter & () const
 
- Public Member Functions inherited from pw::stream::ReaderWriter
Readeras_reader ()
 
const Readeras_reader () const
 
 operator Reader & ()
 
 operator const Reader & () const
 
Writeras_writer ()
 
const Writeras_writer () const
 
 operator Writer & ()
 
 operator const Writer & () const
 
- Public Member Functions inherited from pw::stream::Stream
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
 

Friends

class SeekableReaderWriter
 

Additional Inherited Members

- Public Types inherited from pw::stream::Stream
enum  Whence : uint8_t { kBeginning = 0b001 , kCurrent = 0b010 , kEnd = 0b100 }
 Positions from which to seek. More...
 
- Static Public Attributes inherited from pw::stream::Stream
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.
 
- Protected Types inherited from pw::stream::Stream
enum class  LimitType : bool { kRead , kWrite }
 

Detailed Description

A ReaderWriter that supports at least relative seeking within some range of the current position. Seeking beyond that or from other origins may or may not be supported. The extent to which seeking is possible is NOT exposed by this API.

Use in APIs when:

  • Relative seeking is required. Usage in APIs should be rare; generally ReaderWriter should be used instead.

Inherit from when:

  • Implementing a ReaderWriter that can only support seeking near the current position.

A buffered ReaderWriter that only supports seeking within its buffer is a good example of a RelativeSeekableReaderWriter.


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