]> git.donarmstrong.com Git - bamtools.git/commitdiff
Modified the way BGZF sets up uncompressed output. Modified BamWriter to support...
authorDerek <derekwbarnett@gmail.com>
Tue, 17 Aug 2010 20:39:44 +0000 (16:39 -0400)
committerDerek <derekwbarnett@gmail.com>
Tue, 17 Aug 2010 20:39:44 +0000 (16:39 -0400)
BGZF.cpp
BGZF.h
BamWriter.cpp
BamWriter.h

index 600e07557f64f796301a8215c07d83adb223898b..92afb96f83e058960aa4ebf0b2789de947944c0b 100644 (file)
--- a/BGZF.cpp
+++ b/BGZF.cpp
@@ -17,7 +17,7 @@ using namespace BamTools;
 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
@@ -25,7 +25,7 @@ BgzfData::BgzfData(bool writeUncompressed)
     , BlockAddress(0)\r
     , IsOpen(false)\r
     , IsWriteOnly(false)\r
-    , IsWriteUncompressed(writeUncompressed)\r
+    , IsWriteUncompressed(false)\r
     , Stream(NULL)\r
     , UncompressedBlock(NULL)\r
     , CompressedBlock(NULL)\r
@@ -62,6 +62,7 @@ void BgzfData::Close(void) {
     // flush and close\r
     fflush(Stream);\r
     fclose(Stream);\r
+    IsWriteUncompressed = false;\r
     IsOpen = false;\r
 }\r
 \r
@@ -221,7 +222,7 @@ int BgzfData::InflateBlock(const int& blockLength) {
 }\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
@@ -254,8 +255,9 @@ bool BgzfData::Open(const string& filename, const char* mode) {
         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
diff --git a/BGZF.h b/BGZF.h
index c5cd60bbf87f998576a96b8d9db8b3aba863d68a..37bcff75bd2a3a93bb9665c21b250f2b69321246 100644 (file)
--- a/BGZF.h
+++ b/BGZF.h
@@ -93,7 +93,7 @@ struct BgzfData {
 \r
     // constructor & destructor\r
     public:\r
-        BgzfData(bool writeUncompressed = false);\r
+        BgzfData(void);\r
         ~BgzfData(void);\r
 \r
     // main interface methods\r
@@ -101,7 +101,7 @@ struct BgzfData {
         // 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
index 5052eaa751cf27bf2d1a006f4929f677c9770c50..f83ff1c3046ed46876c655b5b11f0535d634bda0 100644 (file)
@@ -35,7 +35,7 @@ struct BamWriter::BamWriterPrivate {
 \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
@@ -65,8 +65,8 @@ void BamWriter::Close(void) {
 }\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
@@ -202,10 +202,10 @@ void BamWriter::BamWriterPrivate::EncodeQuerySequence(const string& query, strin
 }\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
index e8e7a1479200d263c6fb1430ee22f132893a4998..b0cb6ceba3457cc58f3f3670522148a394a39a96 100644 (file)
@@ -34,7 +34,10 @@ class BamWriter {
         // 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