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>

Inherits std::vector< unsigned char >.

List of all members.

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.

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().

Definition at line 32 of file backbuffer.h.


Constructor & Destructor Documentation

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

BackBuffer constructor.

Parameters:
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.
Exceptions:
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().


Member Function Documentation

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.

Parameters:
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().


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

Generated on Wed Nov 23 19:02:51 2011 for FreeCAD by  doxygen 1.6.1