]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/api/internal/BamWriter_p.h
Cleaned up intra-API includes & moved version numbers to 2.0.0
[bamtools.git] / src / api / internal / BamWriter_p.h
index 6eecd73b9d147dc89f9ae201b4792a9bae24d11e..cf109416b6f80c57866bd1d4fe518d31cd9e9826 100644 (file)
@@ -1,9 +1,8 @@
 // ***************************************************************************
 // BamWriter_p.h (c) 2010 Derek Barnett
 // Marth Lab, Department of Biology, Boston College
-// All rights reserved.
 // ---------------------------------------------------------------------------
-// Last modified: 19 November 2010 (DB)
+// Last modified: 10 October 2011 (DB)
 // ---------------------------------------------------------------------------
 // Provides the basic functionality for producing BAM files
 // ***************************************************************************
 //
 // We mean it.
 
-#include <api/BamAux.h>
-#include <api/BGZF.h>
+#include "api/BamAux.h"
+#include "api/internal/BgzfStream_p.h"
 #include <string>
 #include <vector>
 
 namespace BamTools {
 
-class SamHeader;
+class BamAlignment;
 
 namespace Internal {
 
@@ -36,32 +35,36 @@ class BamWriterPrivate {
 
     // ctor & dtor
     public:
-       BamWriterPrivate(void);
-       ~BamWriterPrivate(void);
+        BamWriterPrivate(void);
+        ~BamWriterPrivate(void);
 
-    // "public" interface to BamWriter
+    // interface methods
     public:
-       void Close(void);
-       bool Open(const std::string& filename,
-                 const std::string& samHeader,
-                 const BamTools::RefVector& referenceSequences,
-                 bool isWriteUncompressed);
-    bool Open(const std::string& filename,
-              const std::string& samHeader,
-              const BamTools::RefVector& referenceSequences,
-              bool isWriteUncompressed);
-       void SaveAlignment(const BamAlignment& al);
+        void Close(void);
+        std::string GetErrorString(void) const;
+        bool IsOpen(void) const;
+        bool Open(const std::string& filename,
+                  const std::string& samHeaderText,
+                  const BamTools::RefVector& referenceSequences);
+        bool SaveAlignment(const BamAlignment& al);
+        void SetWriteCompressed(bool ok);
 
-    // internal methods
+    // 'internal' methods
     public:
-       const unsigned int CalculateMinimumBin(const int begin, int end) const;
-       void CreatePackedCigar(const std::vector<BamTools::CigarOp>& cigarOperations, std::string& packedCigar);
-       void EncodeQuerySequence(const std::string& query, std::string& encodedQuery);
+        uint32_t CalculateMinimumBin(const int begin, int end) const;
+        void CreatePackedCigar(const std::vector<BamTools::CigarOp>& cigarOperations, std::string& packedCigar);
+        void EncodeQuerySequence(const std::string& query, std::string& encodedQuery);
+        void WriteAlignment(const BamAlignment& al);
+        void WriteCoreAlignment(const BamAlignment& al);
+        void WriteMagicNumber(void);
+        void WriteReferences(const BamTools::RefVector& referenceSequences);
+        void WriteSamHeaderText(const std::string& samHeaderText);
 
     // data members
-    public:
-       BgzfData mBGZF;
-       bool IsBigEndian;
+    private:
+        BgzfStream m_stream;
+        bool m_isBigEndian;
+        std::string m_errorString;
 };
 
 } // namespace Internal