|
Grok 15.1.0
|
#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) |
| void * | getUserData (void) |
| void | setUserDataLength (uint64_t len) |
| uint32_t | getStatus (void) |
| void | setReadFunction (grk_stream_read_fn fn) |
| void | setZeroCopyReadFunction (grk_stream_zero_copy_read_fn fn) |
| void | setWriteFunction (grk_stream_write_fn fn) |
| void | setSeekFunction (grk_stream_seek_fn fn) |
| size_t | read (uint8_t *buffer, size_t p_size) |
| Reads some bytes from the stream. | |
| 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!). | |
| bool | flush () |
| Flush stream to disk. | |
| bool | skip (int64_t p_size) |
| Skip bytes in stream. | |
| uint64_t | tell (void) |
| Tells byte offset of stream (similar to ftell). | |
| uint64_t | numBytesLeft (void) |
| Get the number of bytes left before end of stream. | |
| bool | seek (uint64_t offset) |
| Seek bytes from the stream (absolute) | |
| bool | hasSeek () |
| Check if stream is seekable. | |
| bool | supportsZeroCopy () |
| uint8_t * | getZeroCopyPtr () |
| void | setFormat (GRK_CODEC_FORMAT format) |
| GRK_CODEC_FORMAT | getFormat (void) |
Static Public Member Functions | |
| static BufferedStream * | 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. | |
| bool | read_skip (int64_t p_size) |
| Skip bytes in read stream. | |
| bool | read_seek (uint64_t offset) |
| Absolute seek in read stream. | |
| bool | write_seek (uint64_t offset) |
| Absolute seek in write stream. | |
| 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 | |
| grk_stream_free_user_data_fn | free_user_data_fn_ |
| Pointer to function to free user_data_ (nullptr at initialization) when destroying the stream. | |
| uint64_t | user_data_length_ |
| User data length. | |
| grk_stream_read_fn | read_fn_ |
| Pointer to actual read function (nullptr at initialization). | |
| grk_stream_zero_copy_read_fn | zero_copy_read_fn_ |
| Pointer to actual zero copy read function (nullptr at initialization). | |
| grk_stream_write_fn | write_fn_ |
| Pointer to actual write function (nullptr at initialization). | |
| grk_stream_seek_fn | seek_fn_ |
| Pointer to actual seek function (if available). | |
| uint32_t | status_ |
| Stream status flags. | |
| 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_, buffered_bytes_, format_, free_user_data_fn_, GRK_CODEC_UNK, GROK_STREAM_STATUS_INPUT, GROK_STREAM_STATUS_OUTPUT, obj, read_bytes_seekable_, read_fn_, seek_fn_, status_, stream_offset_, user_data_, user_data_length_, write_fn_, and zero_copy_read_fn_.
Referenced by getImpl().
|
private |
References buf_, free_user_data_fn_, and user_data_.
| bool grk::BufferedStream::flush | ( | ) |
Flush stream to disk.
References buf_, buffered_bytes_, grk::grklog, GROK_STREAM_STATUS_ERROR, isMemStream(), read_bytes_seekable_, status_, user_data_, and write_fn_.
Referenced by write(), write_seek(), and writeBytes().
| GRK_CODEC_FORMAT grk::BufferedStream::getFormat | ( | void | ) |
References format_.
|
static |
References BufferedStream().
Referenced by grk::get_mem_stream_offset(), grk_compress_create(), grk_decompress_create(), grk_stream_create_file_stream(), grk_stream_create_stream(), grk_stream_set_read_function(), grk_stream_set_seek_function(), grk_stream_set_user_data(), grk_stream_set_user_data_length(), grk_stream_set_write_function(), and grk::grk_stream_set_zero_copy_read_function().
| uint32_t grk::BufferedStream::getStatus | ( | void | ) |
References status_.
| void * grk::BufferedStream::getUserData | ( | void | ) |
References user_data_.
| grk_stream * grk::BufferedStream::getWrapper | ( | void | ) |
References obj.
| uint8_t * grk::BufferedStream::getZeroCopyPtr | ( | ) |
References buf_.
| bool grk::BufferedStream::hasSeek | ( | void | ) |
Check if stream is seekable.
References seek_fn_.
|
private |
References buf_, buffered_bytes_, GROK_STREAM_STATUS_INPUT, read_bytes_seekable_, and status_.
Referenced by read(), read_seek(), and write_seek().
|
private |
References buf_.
Referenced by flush(), supportsZeroCopy(), write(), write_seek(), writeBytes(), and writeIncrement().
| uint64_t grk::BufferedStream::numBytesLeft | ( | void | ) |
Get the number of bytes left before end of stream.
References stream_offset_, and user_data_length_.
Referenced by grk::FileFormatDecompress::read_box_hdr().
| size_t grk::BufferedStream::read | ( | uint8_t * | buffer, |
| size_t | p_size ) |
Reads some bytes from the stream.
| buffer | pointer to the data buffer that will receive the data. |
| p_size | number of bytes to read. |
References buf_, buffered_bytes_, grk::grklog, GROK_STREAM_STATUS_END, invalidate_buffer(), read_bytes_seekable_, read_fn_, status_, stream_offset_, supportsZeroCopy(), user_data_, and user_data_length_.
Referenced by grk::FileFormatDecompress::read_box_hdr().
|
private |
Absolute seek in read stream.
| offset | absolute offset |
References buf_, buffered_bytes_, GROK_STREAM_STATUS_END, GROK_STREAM_STATUS_ERROR, 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().
| bool grk::BufferedStream::seek | ( | uint64_t | offset | ) |
Seek bytes from the stream (absolute)
| offset | the number of bytes to skip. |
References GROK_STREAM_STATUS_INPUT, read_seek(), status_, and write_seek().
Referenced by grk::SOTMarker::write_psot().
| void grk::BufferedStream::setFormat | ( | GRK_CODEC_FORMAT | format | ) |
References format_.
| void grk::BufferedStream::setReadFunction | ( | grk_stream_read_fn | fn | ) |
References read_fn_.
| void grk::BufferedStream::setSeekFunction | ( | grk_stream_seek_fn | fn | ) |
References seek_fn_.
| void grk::BufferedStream::setUserData | ( | void * | data, |
| grk_stream_free_user_data_fn | freeUserDataFun ) |
References free_user_data_fn_, and user_data_.
| void grk::BufferedStream::setUserDataLength | ( | uint64_t | len | ) |
References user_data_length_.
| void grk::BufferedStream::setWriteFunction | ( | grk_stream_write_fn | fn | ) |
References write_fn_.
| void grk::BufferedStream::setZeroCopyReadFunction | ( | grk_stream_zero_copy_read_fn | fn | ) |
References zero_copy_read_fn_.
| bool grk::BufferedStream::skip | ( | int64_t | p_size | ) |
Skip bytes in stream.
| p_size | the number of bytes to skip. |
References GROK_STREAM_STATUS_INPUT, read_skip(), status_, and write_skip().
| bool grk::BufferedStream::supportsZeroCopy | ( | ) |
References GROK_STREAM_STATUS_INPUT, isMemStream(), and status_.
Referenced by read().
| uint64_t grk::BufferedStream::tell | ( | void | ) |
Tells byte offset of stream (similar to ftell).
References stream_offset_.
Referenced by grk::T2Compress::compressPacket(), and grk::SOTMarker::write_psot().
|
private |
References buf_, buffered_bytes_, flush(), grk::grk_write(), GROK_STREAM_STATUS_ERROR, isMemStream(), seek_fn_, status_, stream_offset_, user_data_, and writeIncrement().
Referenced by write24(), write64(), writeInt(), and writeShort().
| bool grk::BufferedStream::write24 | ( | uint32_t | value | ) |
References write().
Referenced by grk::CodeStreamCompress::write_mcc_record().
| bool grk::BufferedStream::write64 | ( | uint64_t | value | ) |
References write().
|
private |
Absolute seek in write stream.
| offset | absolute offset |
References buf_, flush(), GROK_STREAM_STATUS_ERROR, invalidate_buffer(), isMemStream(), 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().
| bool grk::BufferedStream::writeByte | ( | uint8_t | value | ) |
References writeBytes().
Referenced by grk::T2Compress::compressPacket(), grk::SIZMarker::write(), and grk::CodeStreamCompress::write_mcc_record().
| size_t grk::BufferedStream::writeBytes | ( | const uint8_t * | buffer, |
| size_t | p_size ) |
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. |
References buf_, buffered_bytes_, flush(), GROK_STREAM_STATUS_ERROR, isMemStream(), status_, stream_offset_, user_data_, write_fn_, and writeIncrement().
Referenced by grk::T2Compress::compressPacket(), grk::CodeStreamCompress::write_mct_record(), and writeByte().
|
private |
References buf_, buffered_bytes_, isMemStream(), and stream_offset_.
Referenced by write(), and writeBytes().
| bool grk::BufferedStream::writeInt | ( | uint32_t | value | ) |
References write().
Referenced by grk::SIZMarker::write(), and grk::SOTMarker::write_psot().
| bool grk::BufferedStream::writeShort | ( | uint16_t | value | ) |
References write().
Referenced by grk::SIZMarker::write(), grk::CodeStreamCompress::write_mcc_record(), and grk::CodeStreamCompress::write_mct_record().
|
private |
Referenced by BufferedStream(), flush(), getZeroCopyPtr(), invalidate_buffer(), isMemStream(), read(), read_seek(), write(), write_seek(), writeBytes(), writeIncrement(), and ~BufferedStream().
|
private |
Referenced by BufferedStream(), flush(), invalidate_buffer(), read(), read_seek(), write(), writeBytes(), and writeIncrement().
|
private |
Referenced by BufferedStream(), 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 BufferedStream(), setUserData(), and ~BufferedStream().
| friend grk::BufferedStream::GrkObjectWrapperImpl< BufferedStream > |
|
private |
Referenced by BufferedStream(), and getWrapper().
|
private |
Referenced by BufferedStream(), flush(), invalidate_buffer(), read(), and read_seek().
|
private |
Pointer to actual read function (nullptr at initialization).
Referenced by BufferedStream(), read(), and setReadFunction().
|
private |
Pointer to actual seek function (if available).
Referenced by BufferedStream(), hasSeek(), read_seek(), setSeekFunction(), write(), and write_seek().
|
private |
Stream status flags.
Referenced by BufferedStream(), flush(), getStatus(), invalidate_buffer(), read(), read_seek(), seek(), skip(), supportsZeroCopy(), write(), write_seek(), and writeBytes().
|
private |
Referenced by BufferedStream(), numBytesLeft(), read(), read_seek(), read_skip(), tell(), write(), write_seek(), write_skip(), writeBytes(), and writeIncrement().
|
private |
user data
Referenced by BufferedStream(), 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 BufferedStream(), numBytesLeft(), read(), read_seek(), and setUserDataLength().
|
private |
Pointer to actual write function (nullptr at initialization).
Referenced by BufferedStream(), flush(), setWriteFunction(), and writeBytes().
|
private |
Pointer to actual zero copy read function (nullptr at initialization).
Referenced by BufferedStream(), and setZeroCopyReadFunction().