Class Specialization
BZ2 File Stream
Wrapper for BZFILE * streams from bzlib.
Stream
BZ2 File Stream
Stream<BZ2File>
Include Headers
seqan/stream.h
Remarks
This is only available if SEQAN_HAS_ZLIB is set to 1.
Not copy constructable.
Follows the RIIA pattern when the file is opened through open (and thus the underlying BZFILE * and FILE * are owned).
Can be used as a wrapper around a BZFILE * or create such an object itself through open. Also see the constructor.
Specialization of
Member Functions
StreamConstructor
Functions
atEndDetermines whether an iterator is at the end position. (Stream)
closeCloses a file. (Stream)
openOpens a file, stream, or persistent string. (Stream)
Examples
It is easy to open a BZ2 file via open.
#include <seqan/stream.h>
 
Stream<BZ2File> bzStream;
open(bzStream, "/path/to/file.txt.bz2", "r");  // binary is implicit
 
// Now, work with bzStream.  The object will close the file on destruction.
You can also use BZ2 File Stream as a wrapper around BZFILE *. In this case, we have to deal with the verbose code for opening FILE * and BZFILE * by hand.
#include <cstdio>
#include <bzlib.h>
#include <seqan/stream.h>
 
// Open normal FILE *, BZFILE * above, and Stream<BZ2File> on top.
FILE * f = fopen("/path/to/file.txt.bz2", "rb");
SEQAN_ASSERT(f != NULL);
int err = BZ_OK;
BZFILE * f2 = BZ2_bzReadOpen(&err, f, 0, 0, NULL, 0);
SEQAN_ASSERT_EQ(err, BZ_OK);
Stream<BZ2File> bzStream(f2);
 
// Now, you can work with the stream bzStream.
 
// Note that you only have to close f2 and f, not bzStream.
BZ2_bzReadClose(&err, f2);
SEQAN_ASSERT_EQ(err, BZ_OK);
fclose(f);
SeqAn - Sequence Analysis Library - www.seqan.de
 

Page built @2013/07/11 09:12:38