Grok 20.3.2
grk::IStream Struct Referenceabstract

#include <IStream.h>

Inheritance diagram for grk::IStream:
grk::t1_t2::IStreamWriter grk::BufferedStream

Public Member Functions

virtual ~IStream ()=default
virtual void setUserData (void *data, grk_stream_free_user_data_fn freeUserDataFun, uint64_t len)=0
 Sets user data.
virtual void setCallbacks (StreamCallbacks &callbacks)=0
 Sets callbacks.
virtual size_t read (uint8_t *buffer, uint8_t **zero_copy_buffer, size_t len)=0
 Read bytes from stream.
virtual bool write24u (uint32_t value)=0
 Writes 3 bytes from uint32_t as big endian.
virtual size_t writeBytes (const uint8_t *buffer, size_t len)=0
 Writes bytes to stream (no correction for endian!).
virtual bool flush ()=0
 Flushes stream to disk.
virtual bool skip (int64_t len)=0
 Skips bytes in stream.
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 bool seek (uint64_t offset)=0
 Seek bytes from the stream (absolute).
virtual bool hasSeek ()=0
 Checks if stream is seekable.
virtual bool supportsZeroCopy ()=0
 Checks is stream supports zero copy.
virtual void setFormat (GRK_CODEC_FORMAT format)=0
 Stores codec format J2K/JP2/MJ2.
virtual GRK_CODEC_FORMAT getFormat (void)=0
 Gets codec format (J2K/JP2/MJ2).
virtual uint8_t * currPtr (void)=0
 Gets current pointer (used for zero copy).
virtual bool isMemStream ()=0
 Checks if stream is memory stream i.e.
virtual IFetchergetFetcher (void)=0
 Gets the IFetcher.
virtual IStreambifurcate (void)=0
virtual void setChunkBuffer (std::shared_ptr< ChunkBuffer<> > chunkBuffer)=0
virtual void memAdvise (size_t virtual_offset, size_t length, GrkAccessPattern pattern)=0
Public Member Functions inherited from grk::t1_t2::IStreamWriter
virtual ~IStreamWriter ()=default
template<typename TYPE>
bool write (TYPE value)
 Writes to stream.
virtual bool write8u (uint8_t value)=0
 Writes byte.

Additional Inherited Members

Protected Member Functions inherited from grk::t1_t2::IStreamWriter
virtual bool write_non_template (const uint8_t *value, uint8_t sizeOfType, uint8_t numBytes)=0

Constructor & Destructor Documentation

◆ ~IStream()

virtual grk::IStream::~IStream ( )
virtualdefault

Member Function Documentation

◆ bifurcate()

virtual IStream * grk::IStream::bifurcate ( void )
pure virtual

Implemented in grk::BufferedStream.

◆ currPtr()

virtual uint8_t * grk::IStream::currPtr ( void )
pure virtual

Gets current pointer (used for zero copy).

Returns
current pointer

Implemented in grk::BufferedStream.

◆ flush()

virtual bool grk::IStream::flush ( )
pure virtual

Flushes stream to disk.

Returns
true if the data could be flushed

Implemented in grk::BufferedStream.

◆ getFetcher()

virtual IFetcher * grk::IStream::getFetcher ( void )
pure virtual

Gets the IFetcher.

Returns
IFetcher*

Implemented in grk::BufferedStream.

◆ getFormat()

virtual GRK_CODEC_FORMAT grk::IStream::getFormat ( void )
pure virtual

Gets codec format (J2K/JP2/MJ2).

Returns
GRK_CODEC_FORMAT

Implemented in grk::BufferedStream.

Referenced by grkDecompressCreate().

◆ hasSeek()

virtual bool grk::IStream::hasSeek ( )
pure virtual

Checks if stream is seekable.

Returns
true if seekable

Implemented in grk::BufferedStream.

◆ isMemStream()

virtual bool grk::IStream::isMemStream ( )
pure virtual

Checks if stream is memory stream i.e.

from mapped file or buffer

Returns
true
false

Implemented in grk::BufferedStream.

◆ memAdvise()

virtual void grk::IStream::memAdvise ( size_t virtual_offset,
size_t length,
GrkAccessPattern pattern )
pure virtual

◆ numBytesLeft()

virtual uint64_t grk::IStream::numBytesLeft ( void )
pure virtual

Gets the number of bytes left before end of stream.

Returns
number of bytes left before the end of the stream.

Implemented in grk::BufferedStream.

Referenced by grk::FileFormatJP2Family::read_box_header(), and grk::TileProcessor::readSOT().

◆ read()

virtual size_t grk::IStream::read ( uint8_t * buffer,
uint8_t ** zero_copy_buffer,
size_t len )
pure virtual

Read bytes from stream.

Parameters
bufferpointer to the data buffer that will receive the data. If null, do zero copy read
zero_copy_bufferoptional pointer to the buffer address that will receive current zero copy pointer. If null, do regular read
lennumber of bytes to read.
Returns
number of bytes read

Implemented in grk::BufferedStream.

Referenced by grk::FileFormatJP2Family::read_box_header(), grk::MarkerParser::readShort(), grk::FileFormatJP2Compress::transcode(), grk::FileFormatJP2Compress::transcodeCodestream(), and grk::StreamGenerator::validateStream().

◆ seek()

virtual bool grk::IStream::seek ( uint64_t offset)
pure virtual

Seek bytes from the stream (absolute).

Parameters
offsetthe number of bytes to skip.
Returns
true if successful, otherwise false

Implemented in grk::BufferedStream.

Referenced by grk::TLMMarker::seekNextSlated(), grk::FileFormatJP2Compress::transcode(), grk::FileFormatJP2Compress::transcodeCodestream(), grk::StreamGenerator::validateStream(), and grk::SOTMarker::write_psot().

◆ setCallbacks()

virtual void grk::IStream::setCallbacks ( StreamCallbacks & callbacks)
pure virtual

Sets callbacks.

Parameters
callbacksStreamCallbacks

Implemented in grk::BufferedStream.

Referenced by grk::memStreamSetup().

◆ setChunkBuffer()

virtual void grk::IStream::setChunkBuffer ( std::shared_ptr< ChunkBuffer<> > chunkBuffer)
pure virtual

Implemented in grk::BufferedStream.

◆ setFormat()

virtual void grk::IStream::setFormat ( GRK_CODEC_FORMAT format)
pure virtual

Stores codec format J2K/JP2/MJ2.

This is needed when deciding what type of code stream object to create based on stream

Parameters
formatGRK_CODEC_FORMAT

Implemented in grk::BufferedStream.

Referenced by grk::StreamGenerator::validateStream().

◆ setUserData()

virtual void grk::IStream::setUserData ( void * data,
grk_stream_free_user_data_fn freeUserDataFun,
uint64_t len )
pure virtual

Sets user data.

Parameters
datauser data
freeUserDataFungrk_stream_free_user_data_fn used to free data when stream is closed
lendata length (for read stream)

Implemented in grk::BufferedStream.

◆ skip()

virtual bool grk::IStream::skip ( int64_t len)
pure virtual

Skips bytes in stream.

Parameters
lennumber of bytes to skip.
Returns
true if successful

Implemented in grk::BufferedStream.

Referenced by grk::FileFormatJP2Compress::transcode(), and grk::FileFormatJP2Compress::transcodeCodestream().

◆ supportsZeroCopy()

virtual bool grk::IStream::supportsZeroCopy ( )
pure virtual

Checks is stream supports zero copy.

Returns
true if zero copy supported

Implemented in grk::BufferedStream.

Referenced by grk::FileFormatJP2Family::read_box_header().

◆ tell()

virtual uint64_t grk::IStream::tell ( void )
pure virtual

◆ write24u()

virtual bool grk::IStream::write24u ( uint32_t value)
pure virtual

Writes 3 bytes from uint32_t as big endian.

Parameters
valueuint32_t to write
Returns
true if successful

Implemented in grk::BufferedStream.

Referenced by grk::CodeStreamCompress::write_mcc_record().

◆ writeBytes()

virtual size_t grk::IStream::writeBytes ( const uint8_t * buffer,
size_t len )
pure virtual

Writes bytes to stream (no correction for endian!).

Parameters
bufferpointer to the data buffer holds the data to be written.
lennumber of bytes to write.
Returns
number of bytes written

Implemented in grk::BufferedStream.

Referenced by grk::T2Compress::compressPacket(), grk::CodeStreamCompress::write_mct_record(), and grk::FileFormatJP2Compress::writeAsocBox().


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