]> git.donarmstrong.com Git - bamtools.git/commitdiff
Modified BamWriter::Open() to return bool on success/fail - was silent before, so...
authorDerek <derekwbarnett@gmail.com>
Tue, 17 Aug 2010 19:19:10 +0000 (15:19 -0400)
committerDerek <derekwbarnett@gmail.com>
Tue, 17 Aug 2010 19:19:10 +0000 (15:19 -0400)
BamWriter.cpp
BamWriter.h

index a794dff577adc2d17ada9f94807413b156bdefcc..5052eaa751cf27bf2d1a006f4929f677c9770c50 100644 (file)
@@ -3,7 +3,7 @@
 // Marth Lab, Department of Biology, Boston College\r
 // All rights reserved.\r
 // ---------------------------------------------------------------------------\r
-// Last modified: 15 July 2010 (DB)\r
+// Last modified: 17 August 2010 (DB)\r
 // ---------------------------------------------------------------------------\r
 // Uses BGZF routines were adapted from the bgzf.c code developed at the Broad\r
 // Institute.\r
@@ -35,7 +35,7 @@ struct BamWriter::BamWriterPrivate {
 \r
     // "public" interface\r
     void Close(void);\r
-    void Open(const string& filename, const string& samHeader, const RefVector& referenceSequences);\r
+    bool Open(const string& filename, const string& samHeader, const RefVector& referenceSequences);\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
-void BamWriter::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences) {\r
-    d->Open(filename, samHeader, referenceSequences);\r
+bool BamWriter::Open(const string& filename, const string& samHeader, const RefVector& referenceSequences) {\r
+    return d->Open(filename, samHeader, referenceSequences);\r
 }\r
 \r
 // saves the alignment to the alignment archive\r
@@ -202,10 +202,11 @@ void BamWriter::BamWriterPrivate::EncodeQuerySequence(const string& query, strin
 }\r
 \r
 // opens the alignment archive\r
-void 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) {\r
 \r
-    // open the BGZF file for writing\r
-    mBGZF.Open(filename, "wb");\r
+    // open the BGZF file for writing, return failure if error\r
+    if ( !mBGZF.Open(filename, "wb") )\r
+        return false;\r
 \r
     // ================\r
     // write the header\r
@@ -250,6 +251,9 @@ void BamWriter::BamWriterPrivate::Open(const string& filename, const string& sam
         if (IsBigEndian) SwapEndian_32(referenceLength);\r
         mBGZF.Write((char*)&referenceLength, BT_SIZEOF_INT);\r
     }\r
+    \r
+    // return success\r
+    return true;\r
 }\r
 \r
 // saves the alignment to the alignment archive\r
index 2608ddbe793f972ab0ac1b4da78f5fdc7812b0de..e8e7a1479200d263c6fb1430ee22f132893a4998 100644 (file)
@@ -3,7 +3,7 @@
 // Marth Lab, Department of Biology, Boston College\r
 // All rights reserved.\r
 // ---------------------------------------------------------------------------\r
-// Last modified: 8 December 2009 (DB)\r
+// Last modified: 17 August 2010 (DB)\r
 // ---------------------------------------------------------------------------\r
 // Uses BGZF routines were adapted from the bgzf.c code developed at the Broad\r
 // Institute.\r
@@ -34,7 +34,7 @@ class BamWriter {
         // closes the alignment archive\r
         void Close(void);\r
         // opens the alignment archive\r
-        void Open(const std::string& filename, const std::string& samHeader, const BamTools::RefVector& referenceSequences);\r
+        bool Open(const std::string& filename, const std::string& samHeader, const BamTools::RefVector& referenceSequences);\r
         // saves the alignment to the alignment archive\r
         void SaveAlignment(const BamTools::BamAlignment& al);\r
 \r