using std::string;\r
using std::min;\r
\r
-BgzfData::BgzfData(bool writeUncompressed)\r
+BgzfData::BgzfData(void)\r
: UncompressedBlockSize(DEFAULT_BLOCK_SIZE)\r
, CompressedBlockSize(MAX_BLOCK_SIZE)\r
, BlockLength(0)\r
, BlockAddress(0)\r
, IsOpen(false)\r
, IsWriteOnly(false)\r
- , IsWriteUncompressed(writeUncompressed)\r
+ , IsWriteUncompressed(false)\r
, Stream(NULL)\r
, UncompressedBlock(NULL)\r
, CompressedBlock(NULL)\r
// flush and close\r
fflush(Stream);\r
fclose(Stream);\r
+ IsWriteUncompressed = false;\r
IsOpen = false;\r
}\r
\r
}\r
\r
// opens the BGZF file for reading (mode is either "rb" for reading, or "wb" for writing)\r
-bool BgzfData::Open(const string& filename, const char* mode) {\r
+bool BgzfData::Open(const string& filename, const char* mode, bool isWriteUncompressed ) {\r
\r
// determine open mode\r
if ( strcmp(mode, "rb") == 0 )\r
return false;\r
}\r
\r
- // set flag, return success\r
+ // set flags, return success\r
IsOpen = true;\r
+ IsWriteUncompressed = isWriteUncompressed;\r
return true;\r
}\r
\r
\r
// constructor & destructor\r
public:\r
- BgzfData(bool writeUncompressed = false);\r
+ BgzfData(void);\r
~BgzfData(void);\r
\r
// main interface methods\r
// closes BGZF file\r
void Close(void);\r
// opens the BGZF file (mode is either "rb" for reading, or "wb" for writing)\r
- bool Open(const std::string& filename, const char* mode);\r
+ bool Open(const std::string& filename, const char* mode, bool isWriteUncompressed = false);\r
// reads BGZF data into a byte buffer\r
int Read(char* data, const unsigned int dataLength);\r
// seek to position in BGZF file\r
\r
// "public" interface\r
void Close(void);\r
- bool Open(const string& filename, const string& samHeader, const RefVector& referenceSequences);\r
+ bool Open(const string& filename, const string& samHeader, const RefVector& referenceSequences, bool isWriteUncompressed);\r
void SaveAlignment(const BamAlignment& al);\r
\r
// internal methods\r
}\r
\r
// opens the alignment archive\r
-bool BamWriter::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences) {\r
- return d->Open(filename, samHeader, referenceSequences);\r
+bool BamWriter::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences, bool isWriteUncompressed) {\r
+ return d->Open(filename, samHeader, referenceSequences, isWriteUncompressed);\r
}\r
\r
// saves the alignment to the alignment archive\r
}\r
\r
// opens the alignment archive\r
-bool BamWriter::BamWriterPrivate::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences) {\r
+bool BamWriter::BamWriterPrivate::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences, bool isWriteUncompressed) {\r
\r
// open the BGZF file for writing, return failure if error\r
- if ( !mBGZF.Open(filename, "wb") )\r
+ if ( !mBGZF.Open(filename, "wb", isWriteUncompressed) )\r
return false;\r
\r
// ================\r
// closes the alignment archive\r
void Close(void);\r
// opens the alignment archive\r
- bool Open(const std::string& filename, const std::string& samHeader, const BamTools::RefVector& referenceSequences);\r
+ bool Open(const std::string& filename, \r
+ const std::string& samHeader, \r
+ const BamTools::RefVector& referenceSequences, \r
+ bool writeUncompressed = false);\r
// saves the alignment to the alignment archive\r
void SaveAlignment(const BamTools::BamAlignment& al);\r
\r