42 :
StreamCallbacks(streamParams->read_fn, nullptr, streamParams->seek_fn,
43 streamParams->write_fn)
91 virtual size_t read(uint8_t* buffer, uint8_t** zero_copy_buffer,
size_t len) = 0;
107 virtual size_t writeBytes(
const uint8_t* buffer,
size_t len) = 0;
120 virtual bool skip(int64_t len) = 0;
126 virtual uint64_t
tell(
void) = 0;
138 virtual bool seek(uint64_t offset) = 0;
Manages a partially ordered deque of buffer chunks that are added asynchronously out of order.
Definition ChunkBuffer.h:47
Definition CurlFetcher.h:49
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Grok Supported JPEG 2000 formats.
size_t(* grk_stream_read_fn)(uint8_t *buffer, size_t numBytes, void *user_data)
Read stream callback.
Definition grok.h:521
bool(* grk_stream_seek_fn)(uint64_t offset, void *user_data)
Seek (absolute) callback.
Definition grok.h:537
void(* grk_stream_free_user_data_fn)(void *user_data)
Free user data callback.
Definition grok.h:543
size_t(* grk_stream_write_fn)(const uint8_t *buffer, size_t numBytes, void *user_data)
Write stream callback.
Definition grok.h:530
ResWindow.
Definition CompressedChunkCache.h:36
GrkAccessPattern
Definition IMemAdvisor.h:24
size_t(* readZeroCopyCallback)(uint8_t **buffer, size_t numBytes, void *user_data)
Definition IStream.h:32
virtual GRK_CODEC_FORMAT getFormat(void)=0
Gets codec format (J2K/JP2/MJ2).
virtual void setCallbacks(StreamCallbacks &callbacks)=0
Sets callbacks.
virtual bool write24u(uint32_t value)=0
Writes 3 bytes from uint32_t as big endian.
virtual IFetcher * getFetcher(void)=0
Gets the IFetcher.
virtual size_t writeBytes(const uint8_t *buffer, size_t len)=0
Writes bytes to stream (no correction for endian!).
virtual bool hasSeek()=0
Checks if stream is seekable.
virtual ~IStream()=default
virtual void setChunkBuffer(std::shared_ptr< ChunkBuffer<> > chunkBuffer)=0
virtual IStream * bifurcate(void)=0
virtual bool seek(uint64_t offset)=0
Seek bytes from the stream (absolute).
virtual bool flush()=0
Flushes stream to disk.
virtual bool skip(int64_t len)=0
Skips bytes in stream.
virtual uint8_t * currPtr(void)=0
Gets current pointer (used for zero copy).
virtual uint64_t tell(void)=0
query byte offset of stream (similar to ftell).
virtual uint64_t numBytesLeft(void)=0
Gets the number of bytes left before end of stream.
virtual void setUserData(void *data, grk_stream_free_user_data_fn freeUserDataFun, uint64_t len)=0
Sets user data.
virtual bool supportsZeroCopy()=0
Checks is stream supports zero copy.
virtual void memAdvise(size_t virtual_offset, size_t length, GrkAccessPattern pattern)=0
virtual size_t read(uint8_t *buffer, uint8_t **zero_copy_buffer, size_t len)=0
Read bytes from stream.
virtual bool isMemStream()=0
Checks if stream is memory stream i.e.
virtual void setFormat(GRK_CODEC_FORMAT format)=0
Stores codec format J2K/JP2/MJ2.
Stores callbacks.
Definition IStream.h:40
StreamCallbacks()
Definition IStream.h:49
grk_stream_read_fn readCallback_
Definition IStream.h:51
grk_stream_write_fn writeCallback_
Definition IStream.h:54
StreamCallbacks(grk_stream_params *streamParams)
Definition IStream.h:41
grk_stream_seek_fn seekCallback_
Definition IStream.h:53
StreamCallbacks(grk_stream_read_fn rcb, readZeroCopyCallback zcrcb, grk_stream_seek_fn scb, grk_stream_write_fn wcb)
Definition IStream.h:45
readZeroCopyCallback readZeroCopyCallback_
Definition IStream.h:52
Definition IStreamWriter.h:9
JPEG 2000 stream parameters There are three methods of streaming: by file, buffer or callback Client ...