// BamWriter_p.h (c) 2010 Derek Barnett
// Marth Lab, Department of Biology, Boston College
// ---------------------------------------------------------------------------
-// Last modified: 24 February 2011 (DB)
+// Last modified: 10 October 2011 (DB)
// ---------------------------------------------------------------------------
// Provides the basic functionality for producing BAM files
// ***************************************************************************
//
// We mean it.
-#include <api/BamAux.h>
-#include <api/internal/BgzfStream_p.h>
+#include "api/BamAux.h"
+#include "api/internal/BgzfStream_p.h"
#include <string>
#include <vector>
namespace BamTools {
+
+class BamAlignment;
+
namespace Internal {
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<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);
private:
BgzfStream m_stream;
bool m_isBigEndian;
+ std::string m_errorString;
};
} // namespace Internal