X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2FBamWriter_p.h;h=cf109416b6f80c57866bd1d4fe518d31cd9e9826;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=4fe626a892b5bbdfb4ffbebdf3dd9ce9f4bff275;hpb=369e2de20a6d939d07ffc09462167a3b688bbdde;p=bamtools.git diff --git a/src/api/internal/BamWriter_p.h b/src/api/internal/BamWriter_p.h index 4fe626a..cf10941 100644 --- a/src/api/internal/BamWriter_p.h +++ b/src/api/internal/BamWriter_p.h @@ -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 // *************************************************************************** @@ -21,40 +20,51 @@ // // We mean it. -#include -#include +#include "api/BamAux.h" +#include "api/internal/BgzfStream_p.h" #include #include namespace BamTools { + +class BamAlignment; + namespace Internal { 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); - void SaveAlignment(const BamAlignment& al); - - // internal methods + 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 public: - const unsigned int CalculateMinimumBin(const int begin, int end) const; - void CreatePackedCigar(const std::vector& 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& 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