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>
Inherits std::vector< unsigned char >.
Public Member Functions | |
BackBuffer (istream &is, VirtualSeeker vs=VirtualSeeker(), int chunk_size=1024) | |
BackBuffer constructor. | |
int | readChunk (int &read_pointer) |
Reads another chunk and returns the size of the chunk that has been read. |
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().
Definition at line 32 of file backbuffer.h.
zipios::BackBuffer::BackBuffer | ( | istream & | is, | |
VirtualSeeker | vs = VirtualSeeker() , |
|||
int | chunk_size = 1024 | |||
) | [inline, 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. |
Definition at line 62 of file backbuffer.h.
References Sketcher::end, zipios::VirtualSeeker::vseekg(), and zipios::VirtualSeeker::vtellg().
int zipios::BackBuffer::readChunk | ( | int & | read_pointer | ) | [inline] |
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. |
Definition at line 76 of file backbuffer.h.
References insert(), zipios::readByteSeq(), and zipios::VirtualSeeker::vseekg().