SPRAAK
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Fields | Protected Member Functions
SprStreamGZip Class Reference
+ Inheritance diagram for SprStreamGZip:
+ Collaboration diagram for SprStreamGZip:

Data Fields

base::< SprStreambase
 
base::< SprStream > * fdc
 
off_t pos
 
int rv
 
int zflush
 
z_stream zbuf
 
gz_header hdr
 
uintptr_t aux_buf [(SPR_STREAM_BUF_SZ+SPR_STREAM_UNGET_SZ+sizeof(uintptr_t)-1)/sizeof(uintptr_t)]
 
- Data Fields inherited from SprStream
base::< SprObjectinterface_
 
const uint8_t *restrict buf_rptr
 
uint8_t *restrict buf_wptr
 
const uint8_t *spr_readonly buf_end
 
unsigned int buf_size
 
spr_readonly int err
 
spr_readonly int eof
 
SprKeySetkeys
 
const char * fname
 

Protected Member Functions

virtual const uint8_t * buf_fill (public:SprStreamGZip *restrict fd, int min_fill)
 
virtual uint8_t * buf_flush (public:SprStreamGZip *restrict fd)
 
virtual int switch2read (SprStreamGZip *restrict fd)
 
virtual int switch2write (SprStreamGZip *restrict fd)
 
virtual off_t seek (SprStreamGZip *restrict fd, off_t offset, int mode)
 
virtual off_t tell (SprStreamGZip *restrict fd)
 
- Protected Member Functions inherited from SprStream
virtual const uint8_t * buf_fill (public:SprStream *restrict fd, int min_fill)
 
virtual uint8_t * buf_flush (public:SprStream *restrict fd)
 
virtual size_t ebuf_read (public:SprStream *restrict fd, void *restrict buf, size_t size)
 
virtual int ebuf_write (public:SprStream *restrict fd, const void *restrict buf, size_t size)
 
virtual size_t read (SprStream *restrict fd, void *restrict buf, size_t size)
 
virtual int write (SprStream *restrict fd, const void *restrict buf, size_t size)
 
virtual size_t skip (SprStream *restrict fd, size_t size)
 
virtual int fill (SprStream *restrict fd, int chr, size_t size)
 
virtual int switch2read (SprStream *restrict fd)
 
virtual int switch2write (SprStream *restrict fd)
 
virtual off_t seek (SprStream *restrict fd, off_t offset, int mode)
 
virtual off_t tell (SprStream *restrict fd)
 
virtual int align (SprStream *restrict fd)
 

Additional Inherited Members

- Protected Attributes inherited from SprStream
uint8_t * buf_start
 
unsigned int flags
 
int mode
 
size_t rdim2
 
SprStream_buf_fill buf_fill
 
SprStream_buf_flush buf_flush
 
SprStream_ebuf_read ebuf_read
 
SprStream_ebuf_write ebuf_write
 

Detailed Description

A stream object that provides transparent compression or decompression using the zlib library (and gzip headers).

Bug:

Backward seeks are extremely slow.

A stream cannot be opened for both reading and writing.

Member Function Documentation

virtual const uint8_t* SprStreamGZip::buf_fill ( public:SprStreamGZip *restrict  fd,
int  min_fill 
)
protectedvirtual
virtual uint8_t* SprStreamGZip::buf_flush ( public:SprStreamGZip *restrict  fd)
protectedvirtual
virtual int SprStreamGZip::switch2read ( SprStreamGZip *restrict  fd)
protectedvirtual
virtual int SprStreamGZip::switch2write ( SprStreamGZip *restrict  fd)
protectedvirtual
virtual off_t SprStreamGZip::seek ( SprStreamGZip *restrict  fd,
off_t  offset,
int  mode 
)
protectedvirtual
virtual off_t SprStreamGZip::tell ( SprStreamGZip *restrict  fd)
protectedvirtual

Field Documentation

base::<SprStream> SprStreamGZip::base
base::<SprStream> * SprStreamGZip::fdc

the stream where the compressed data comes from / goes to

off_t SprStreamGZip::pos

file position
zlib isn't guaranteed to use 64bits counters

int SprStreamGZip::rv

last return value of the inflate()/deflate() routine

int SprStreamGZip::zflush

flush mode for inflate() / deflate()

z_stream SprStreamGZip::zbuf
gz_header SprStreamGZip::hdr
uintptr_t SprStreamGZip::aux_buf[(SPR_STREAM_BUF_SZ+SPR_STREAM_UNGET_SZ+sizeof(uintptr_t)-1)/sizeof(uintptr_t)]