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... | |
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().
|
explicit |
BackBuffer constructor.
is | The 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_size | specifies the size of the chunks to read the file into the BackBuffer in. |
FCollException | Thrown if the VirtualSeeker vs that has been specified is invalid for the istream is. |
Reads another chunk and returns the size of the chunk that has been read.
Returns 0 on I/O failure.
read_pointer | When 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().