Grok 10.0.5
Public Member Functions | Private Member Functions | Private Attributes | List of all members
grk::BitIO Class Reference

#include <BitIO.h>

Inheritance diagram for grk::BitIO:
grk::IBitIO

Public Member Functions

 BitIO (uint8_t *bp, uint64_t len, bool isCompressor)
 
 BitIO (BufferedStream *stream, bool isCompressor)
 
size_t numBytes (void) override
 Number of bytes written. More...
 
bool write (uint32_t v, uint32_t n) override
 Write bits. More...
 
bool write (uint32_t v) override
 
void read (uint32_t *bits, uint8_t n) override
 Read bits. More...
 
uint8_t read (void) override
 Read bit. More...
 
bool flush (void) override
 Flush bits. More...
 
void inalign (void) override
 Passes the ending bits (coming from flushing) More...
 
bool putcommacode (uint8_t n)
 
uint8_t getcommacode (void)
 
bool putnumpasses (uint32_t n)
 
void getnumpasses (uint32_t *numpasses)
 
- Public Member Functions inherited from grk::IBitIO
virtual ~IBitIO ()
 
virtual size_t numBytes ()=0
 Number of bytes written. More...
 
virtual bool write (uint32_t v, uint32_t n)=0
 Write bits. More...
 
virtual bool write (uint32_t v)=0
 
virtual void read (uint32_t *bits, uint8_t n)=0
 Read bits. More...
 
virtual uint8_t read (void)=0
 Read bit. More...
 
virtual bool flush ()=0
 Flush bits. More...
 
virtual void inalign ()=0
 Passes the ending bits (coming from flushing) More...
 

Private Member Functions

bool putbit (uint8_t b)
 
void getbit (uint32_t *bits, uint8_t pos)
 
uint8_t getbit (void)
 
bool writeByte (void)
 
void bytein (void)
 

Private Attributes

uint8_t * start
 
size_t offset
 
size_t buf_len
 
uint8_t buf
 
uint8_t ct
 
BufferedStreamstream
 
bool read0xFF
 

Constructor & Destructor Documentation

◆ BitIO() [1/2]

grk::BitIO::BitIO ( uint8_t *  bp,
uint64_t  len,
bool  isCompressor 
)

◆ BitIO() [2/2]

grk::BitIO::BitIO ( BufferedStream stream,
bool  isCompressor 
)

Member Function Documentation

◆ bytein()

void grk::BitIO::bytein ( void  )
private

◆ flush()

bool grk::BitIO::flush ( void  )
overridevirtual

Flush bits.

Returns
true if successful, returns false otherwise

Implements grk::IBitIO.

References ct, and writeByte().

Referenced by grk::T2Compress::compressHeader().

◆ getbit() [1/2]

void grk::BitIO::getbit ( uint32_t *  bits,
uint8_t  pos 
)
private

References buf, bytein(), and ct.

◆ getbit() [2/2]

uint8_t grk::BitIO::getbit ( void  )
private

References buf, bytein(), and ct.

Referenced by read().

◆ getcommacode()

uint8_t grk::BitIO::getcommacode ( void  )

References read().

◆ getnumpasses()

void grk::BitIO::getnumpasses ( uint32_t *  numpasses)

References read().

◆ inalign()

void grk::BitIO::inalign ( void  )
overridevirtual

Passes the ending bits (coming from flushing)

Implements grk::IBitIO.

References buf, bytein(), and ct.

◆ numBytes()

size_t grk::BitIO::numBytes ( void  )
overridevirtual

Number of bytes written.

Returns
the number of bytes written

Implements grk::IBitIO.

References offset.

◆ putbit()

bool grk::BitIO::putbit ( uint8_t  b)
private

References buf, ct, and writeByte().

Referenced by write().

◆ putcommacode()

bool grk::BitIO::putcommacode ( uint8_t  n)

References write().

Referenced by grk::T2Compress::compressHeader().

◆ putnumpasses()

bool grk::BitIO::putnumpasses ( uint32_t  n)

References write().

Referenced by grk::T2Compress::compressHeader().

◆ read() [1/2]

void grk::BitIO::read ( uint32_t *  bits,
uint8_t  n 
)
overridevirtual

Read bits.

Parameters
bitspointer to bits buffer
nNumber of bits to read

Implements grk::IBitIO.

References getbit().

Referenced by grk::TagTree< T >::decodeValue().

◆ read() [2/2]

uint8_t grk::BitIO::read ( void  )
overridevirtual

Read bit.

Parameters
bitspointer to bits buffer

Implements grk::IBitIO.

References getbit().

Referenced by getcommacode(), and getnumpasses().

◆ write() [1/2]

bool grk::BitIO::write ( uint32_t  v)
overridevirtual

Implements grk::IBitIO.

References putbit(), and hwy::HWY_NAMESPACE::v.

◆ write() [2/2]

bool grk::BitIO::write ( uint32_t  v,
uint32_t  n 
)
overridevirtual

Write bits.

Parameters
vValue of bits
nNumber of bits to write

Implements grk::IBitIO.

References putbit(), and hwy::HWY_NAMESPACE::v.

Referenced by grk::TagTree< T >::compress(), grk::T2Compress::compressHeader(), putcommacode(), and putnumpasses().

◆ writeByte()

bool grk::BitIO::writeByte ( void  )
private

References buf, buf_len, ct, offset, stream, and grk::BufferedStream::writeByte().

Referenced by flush(), and putbit().

Member Data Documentation

◆ buf

uint8_t grk::BitIO::buf
private

◆ buf_len

size_t grk::BitIO::buf_len
private

Referenced by bytein(), and writeByte().

◆ ct

uint8_t grk::BitIO::ct
private

◆ offset

size_t grk::BitIO::offset
private

Referenced by bytein(), numBytes(), and writeByte().

◆ read0xFF

bool grk::BitIO::read0xFF
private

Referenced by bytein().

◆ start

uint8_t* grk::BitIO::start
private

Referenced by bytein().

◆ stream

BufferedStream* grk::BitIO::stream
private

Referenced by writeByte().


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