X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2FBamWriter_p.h;h=cf109416b6f80c57866bd1d4fe518d31cd9e9826;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=dd2b0fe1178ce8c2c52a9b2b4b0406ba9a81c122;hpb=8c80d760637f8df39262683cd2570f0589423d36;p=bamtools.git diff --git a/src/api/internal/BamWriter_p.h b/src/api/internal/BamWriter_p.h index dd2b0fe..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: 24 February 2011 (DB) +// Last modified: 10 October 2011 (DB) // --------------------------------------------------------------------------- // Provides the basic functionality for producing BAM files // *************************************************************************** @@ -21,12 +20,15 @@ // // 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 { @@ -39,18 +41,21 @@ class BamWriterPrivate { // interface methods public: 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); - void SaveAlignment(const BamAlignment& al); + bool SaveAlignment(const BamAlignment& al); void SetWriteCompressed(bool ok); // 'internal' methods public: - unsigned int CalculateMinimumBin(const int begin, int end) const; + 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); @@ -59,6 +64,7 @@ class BamWriterPrivate { private: BgzfStream m_stream; bool m_isBigEndian; + std::string m_errorString; }; } // namespace Internal