Grok 10.0.3
|
#include <BufferedStream.h>
Public Member Functions | |
BufferedStream (uint8_t *buffer, size_t buffer_size, bool l_is_input) | |
grk_stream * | getWrapper (void) |
void | setUserData (void *data, grk_stream_free_user_data_fn freeUserDataFun) override |
void * | getUserData (void) override |
void | setUserDataLength (uint64_t len) override |
uint32_t | getStatus (void) override |
void | setReadFunction (grk_stream_read_fn fn) override |
void | setZeroCopyReadFunction (grk_stream_zero_copy_read_fn fn) override |
void | setWriteFunction (grk_stream_write_fn fn) override |
void | setSeekFunction (grk_stream_seek_fn fn) override |
size_t | read (uint8_t *buffer, size_t p_size) |
Reads some bytes from the stream. More... | |
bool | writeShort (uint16_t value) |
bool | write24 (uint32_t value) |
bool | writeInt (uint32_t value) |
bool | write64 (uint64_t value) |
bool | writeByte (uint8_t value) |
size_t | writeBytes (const uint8_t *buffer, size_t p_size) |
Write bytes to stream (no correction for endian!). More... | |
bool | flush () |
Flush stream to disk. More... | |
bool | skip (int64_t p_size) |
Skip bytes in stream. More... | |
uint64_t | tell (void) |
Tells byte offset of stream (similar to ftell). More... | |
uint64_t | numBytesLeft (void) |
Get the number of bytes left before end of stream. More... | |
bool | seek (uint64_t offset) override |
Seek bytes from the stream (absolute) More... | |
bool | hasSeek () override |
Check if stream is seekable. More... | |
bool | supportsZeroCopy () override |
uint8_t * | getZeroCopyPtr () override |
void | setFormat (GRK_CODEC_FORMAT format) override |
GRK_CODEC_FORMAT | getFormat (void) override |
![]() | |
virtual | ~IBufferedStream ()=default |
virtual uint32_t | getStatus (void)=0 |
virtual void * | getUserData (void)=0 |
virtual void | setUserData (void *data, grk_stream_free_user_data_fn freeUserDataFun)=0 |
virtual void | setUserDataLength (uint64_t len)=0 |
virtual void | setReadFunction (grk_stream_read_fn fn)=0 |
virtual void | setZeroCopyReadFunction (grk_stream_zero_copy_read_fn fn)=0 |
virtual void | setWriteFunction (grk_stream_write_fn fn)=0 |
virtual void | setSeekFunction (grk_stream_seek_fn fn)=0 |
virtual bool | supportsZeroCopy ()=0 |
virtual uint8_t * | getZeroCopyPtr ()=0 |
virtual size_t | read (uint8_t *buffer, size_t p_size)=0 |
Reads some bytes from the stream. More... | |
virtual bool | writeShort (uint16_t value)=0 |
virtual bool | write24 (uint32_t value)=0 |
virtual bool | writeInt (uint32_t value)=0 |
virtual bool | write64 (uint64_t value)=0 |
virtual bool | writeByte (uint8_t value)=0 |
virtual size_t | writeBytes (const uint8_t *buffer, size_t p_size)=0 |
Write bytes to the stream. More... | |
virtual bool | flush ()=0 |
Flush write stream to disk. More... | |
virtual bool | skip (int64_t p_size)=0 |
Skip bytes in stream, forward or reverse. More... | |
virtual uint64_t | tell (void)=0 |
Tell byte offset in stream (similar to ftell). More... | |
virtual uint64_t | numBytesLeft (void)=0 |
Get number of bytes left before end of the stream. More... | |
virtual bool | seek (uint64_t offset)=0 |
Seek to absolute offset in stream. More... | |
virtual bool | hasSeek ()=0 |
Check if stream is seekable. More... | |
virtual void | setFormat (GRK_CODEC_FORMAT format)=0 |
virtual GRK_CODEC_FORMAT | getFormat (void)=0 |
Static Public Member Functions | |
static IBufferedStream * | getImpl (grk_stream *stream) |
Public Attributes | |
friend | GrkObjectWrapperImpl< BufferedStream > |
Private Member Functions | |
~BufferedStream () | |
bool | write_skip (int64_t p_size) |
Skip bytes in write stream. More... | |
bool | read_skip (int64_t p_size) |
Skip bytes in read stream. More... | |
bool | read_seek (uint64_t offset) |
Absolute seek in read stream. More... | |
bool | write_seek (uint64_t offset) |
Absolute seek in write stream. More... | |
void | writeIncrement (size_t p_size) |
template<typename TYPE > | |
bool | write (TYPE value, uint8_t numBytes) |
void | invalidate_buffer () |
bool | isMemStream () |
Private Attributes | |
grk_object | obj |
void * | user_data_ |
user data More... | |
grk_stream_free_user_data_fn | free_user_data_fn_ |
Pointer to function to free user_data_ (nullptr at initialization) when destroying the stream. More... | |
uint64_t | user_data_length_ |
User data length. More... | |
grk_stream_read_fn | read_fn_ |
Pointer to actual read function (nullptr at initialization). More... | |
grk_stream_zero_copy_read_fn | zero_copy_read_fn_ |
Pointer to actual zero copy read function (nullptr at initialization). More... | |
grk_stream_write_fn | write_fn_ |
Pointer to actual write function (nullptr at initialization). More... | |
grk_stream_seek_fn | seek_fn_ |
Pointer to actual seek function (if available). More... | |
uint32_t | status_ |
Stream status flags. More... | |
grk_buf8 * | buf_ |
size_t | buffered_bytes_ |
size_t | read_bytes_seekable_ |
uint64_t | stream_offset_ |
GRK_CODEC_FORMAT | format_ |
grk::BufferedStream::BufferedStream | ( | uint8_t * | buffer, |
size_t | buffer_size, | ||
bool | l_is_input | ||
) |
References buf_, obj, and _grk_object::wrapper.
|
private |
References buf_, free_user_data_fn_, and user_data_.
|
virtual |
Flush stream to disk.
Implements grk::IBufferedStream.
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), grk::GRK_ERROR(), GROK_STREAM_STATUS_ERROR, grk::grk_buf< T, A >::incrementOffset(), isMemStream(), grk::grk_buf< T, A >::offset, read_bytes_seekable_, status_, user_data_, and write_fn_.
Referenced by write(), write_seek(), and writeBytes().
|
overridevirtual |
Implements grk::IBufferedStream.
References format_.
|
static |
References _grk_object::wrapper.
Referenced by grk::get_mem_stream_offset(), and grk::grk_stream_set_zero_copy_read_function().
|
overridevirtual |
Implements grk::IBufferedStream.
References status_.
|
overridevirtual |
Implements grk::IBufferedStream.
References user_data_.
grk_stream * grk::BufferedStream::getWrapper | ( | void | ) |
References obj.
|
overridevirtual |
Implements grk::IBufferedStream.
References buf_, and grk::grk_buf< T, A >::currPtr().
|
overridevirtual |
|
private |
References buf_, buffered_bytes_, GROK_STREAM_STATUS_INPUT, grk::grk_buf< T, A >::offset, read_bytes_seekable_, and status_.
Referenced by read(), read_seek(), and write_seek().
|
private |
References buf_, and grk::grk_buf< T, A >::owns_data.
Referenced by flush(), supportsZeroCopy(), write(), write_seek(), writeBytes(), and writeIncrement().
|
virtual |
Get the number of bytes left before end of stream.
Implements grk::IBufferedStream.
References stream_offset_, and user_data_length_.
|
virtual |
Reads some bytes from the stream.
buffer | pointer to the data buffer that will receive the data. |
p_size | number of bytes to read. |
Implements grk::IBufferedStream.
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), grk::GRK_ERROR(), GROK_STREAM_STATUS_END, grk::grk_buf< T, A >::incrementOffset(), invalidate_buffer(), grk::grk_buf< T, A >::len, read_bytes_seekable_, read_fn_, status_, stream_offset_, supportsZeroCopy(), user_data_, and user_data_length_.
|
private |
Absolute seek in read stream.
offset | absolute offset |
References grk::grk_buf< T, A >::buf, buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), GROK_STREAM_STATUS_END, GROK_STREAM_STATUS_ERROR, grk::grk_buf< T, A >::incrementOffset(), invalidate_buffer(), read_bytes_seekable_, seek_fn_, status_, stream_offset_, user_data_, and user_data_length_.
Referenced by read_skip(), and seek().
|
private |
Skip bytes in read stream.
p_size | the number of bytes to skip. |
References read_seek(), and stream_offset_.
Referenced by skip().
|
overridevirtual |
Seek bytes from the stream (absolute)
offset | the number of bytes to skip. |
Implements grk::IBufferedStream.
References GROK_STREAM_STATUS_INPUT, read_seek(), status_, and write_seek().
|
overridevirtual |
Implements grk::IBufferedStream.
References hwy::format, and format_.
|
overridevirtual |
Implements grk::IBufferedStream.
References read_fn_.
|
overridevirtual |
Implements grk::IBufferedStream.
References seek_fn_.
|
overridevirtual |
Implements grk::IBufferedStream.
References free_user_data_fn_, and user_data_.
|
overridevirtual |
Implements grk::IBufferedStream.
References user_data_length_.
|
overridevirtual |
Implements grk::IBufferedStream.
References write_fn_.
|
overridevirtual |
Implements grk::IBufferedStream.
References zero_copy_read_fn_.
|
virtual |
Skip bytes in stream.
p_size | the number of bytes to skip. |
Implements grk::IBufferedStream.
References GROK_STREAM_STATUS_INPUT, read_skip(), status_, and write_skip().
|
overridevirtual |
Implements grk::IBufferedStream.
References GROK_STREAM_STATUS_INPUT, isMemStream(), and status_.
Referenced by read().
|
virtual |
Tells byte offset of stream (similar to ftell).
Implements grk::IBufferedStream.
References stream_offset_.
|
private |
|
virtual |
Implements grk::IBufferedStream.
|
virtual |
Implements grk::IBufferedStream.
|
private |
Absolute seek in write stream.
offset | absolute offset |
References buf_, flush(), GROK_STREAM_STATUS_ERROR, invalidate_buffer(), isMemStream(), grk::grk_buf< T, A >::offset, seek_fn_, status_, stream_offset_, and user_data_.
Referenced by seek(), and write_skip().
|
private |
Skip bytes in write stream.
p_size | the number of bytes to skip. |
References stream_offset_, and write_seek().
Referenced by skip().
|
virtual |
Implements grk::IBufferedStream.
References writeBytes().
|
virtual |
Write bytes to stream (no correction for endian!).
buffer | pointer to the data buffer holds the data to be written. |
p_size | number of bytes to write. |
Implements grk::IBufferedStream.
References buf_, buffered_bytes_, grk::grk_buf< T, A >::currPtr(), flush(), GROK_STREAM_STATUS_ERROR, isMemStream(), grk::grk_buf< T, A >::len, grk::grk_buf< T, A >::offset, status_, stream_offset_, user_data_, write_fn_, and writeIncrement().
Referenced by writeByte().
|
private |
References buf_, buffered_bytes_, grk::grk_buf< T, A >::incrementOffset(), isMemStream(), and stream_offset_.
Referenced by write(), and writeBytes().
|
virtual |
Implements grk::IBufferedStream.
|
virtual |
Implements grk::IBufferedStream.
|
private |
Referenced by BufferedStream(), flush(), getZeroCopyPtr(), invalidate_buffer(), isMemStream(), read(), read_seek(), write(), write_seek(), writeBytes(), writeIncrement(), and ~BufferedStream().
|
private |
Referenced by flush(), invalidate_buffer(), read(), read_seek(), write(), writeBytes(), and writeIncrement().
|
private |
Referenced by getFormat(), and setFormat().
|
private |
Pointer to function to free user_data_ (nullptr at initialization) when destroying the stream.
If pointer is nullptr the function is not called and the user_data_ is not freed (even if it isn't nullptr).
Referenced by setUserData(), and ~BufferedStream().
friend grk::BufferedStream::GrkObjectWrapperImpl< BufferedStream > |
|
private |
Referenced by BufferedStream(), and getWrapper().
|
private |
Referenced by flush(), invalidate_buffer(), read(), and read_seek().
|
private |
Pointer to actual read function (nullptr at initialization).
Referenced by read(), and setReadFunction().
|
private |
Pointer to actual seek function (if available).
Referenced by hasSeek(), read_seek(), setSeekFunction(), write(), and write_seek().
|
private |
Stream status flags.
Referenced by flush(), getStatus(), invalidate_buffer(), read(), read_seek(), seek(), skip(), supportsZeroCopy(), write(), write_seek(), and writeBytes().
|
private |
Referenced by numBytesLeft(), read(), read_seek(), read_skip(), tell(), write(), write_seek(), write_skip(), writeBytes(), and writeIncrement().
|
private |
user data
Referenced by flush(), getUserData(), read(), read_seek(), setUserData(), write(), write_seek(), writeBytes(), and ~BufferedStream().
|
private |
User data length.
Currently set to size of file for file read stream, and size of buffer for buffer read/write stream
Referenced by numBytesLeft(), read(), read_seek(), and setUserDataLength().
|
private |
Pointer to actual write function (nullptr at initialization).
Referenced by flush(), setWriteFunction(), and writeBytes().
|
private |
Pointer to actual zero copy read function (nullptr at initialization).
Referenced by setZeroCopyReadFunction().