zipios::BackBuffer Class Reference

A BackBuffer instance is useful for reading the last part of a file in an efficient manner, when it is not known exactly how far back (towards the front!) to go, to find the start of the desired data block. More...

#include <backbuffer.h>

Public Member Functions

 BackBuffer (istream &is, VirtualSeeker vs=VirtualSeeker(), int chunk_size=1024)
 BackBuffer constructor. More...
 
int readChunk (int &read_pointer)
 Reads another chunk and returns the size of the chunk that has been read. More...
 

Detailed Description

A BackBuffer instance is useful for reading the last part of a file in an efficient manner, when it is not known exactly how far back (towards the front!) to go, to find the start of the desired data block.

BackBuffer is a vector< unsigned char > that fills itself with data from a file by reading chunks from the end of the file progressing towards the start. Upon construction the BackBuffer instance is associated with a file and a chunksize can be specified. To read a chunk of the file into the BackBuffer call readChunk().

Constructor & Destructor Documentation

◆ BackBuffer()

zipios::BackBuffer::BackBuffer ( istream &  is,
VirtualSeeker  vs = VirtualSeeker(),
int  chunk_size = 1024 
)
explicit

BackBuffer constructor.

Parameters
isThe istream to read the data from. The stream must be seekable, as BackBuffer will reposition the file position to read chunks from the back of the file.
vs
chunk_sizespecifies the size of the chunks to read the file into the BackBuffer in.
Exceptions
FCollExceptionThrown if the VirtualSeeker vs that has been specified is invalid for the istream is.

Member Function Documentation

◆ readChunk()

int zipios::BackBuffer::readChunk ( int read_pointer)

Reads another chunk and returns the size of the chunk that has been read.

Returns 0 on I/O failure.

Parameters
read_pointerWhen a new chunk is read in the already stored bytes change position in the BackBuffer. read_pointer is assumed by readChunk() to be a pointer into a position in the BackBuffer, and is updated to point to the same position in the file as it pointed to before the new chunk was read.

References zipios::readByteSeq().


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