--- /dev/null
+// ***************************************************************************\r
+// BamWriter.h (c) 2009 Michael Str�mberg, Derek Barnett\r
+// Marth Lab, Department of Biology, Boston College\r
+// All rights reserved.\r
+// ---------------------------------------------------------------------------\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
+// ---------------------------------------------------------------------------\r
+// Provides the basic functionality for producing BAM files\r
+// ***************************************************************************\r
+\r
+#ifndef BAMWRITER_H\r
+#define BAMWRITER_H\r
+\r
+// C++ includes\r
+#include <string>\r
+\r
+// BamTools includes\r
+#include "BamAux.h"\r
+\r
+namespace BamTools {\r
+\r
+class BamWriter {\r
+\r
+ // constructor/destructor\r
+ public:\r
+ BamWriter(void);\r
+ ~BamWriter(void);\r
+\r
+ // public interface\r
+ public:\r
+ // closes the alignment archive\r
+ void Close(void);\r
+ // opens the alignment archive\r
+ bool Open(const std::string& filename, \r
+ const std::string& samHeader, \r
+ const BamTools::RefVector& referenceSequences, \r
+ bool writeUncompressed = false);\r
+ // saves the alignment to the alignment archive\r
+ void SaveAlignment(const BamTools::BamAlignment& al);\r
+\r
+ // private implementation\r
+ private:\r
+ struct BamWriterPrivate;\r
+ BamWriterPrivate* d;\r
+};\r
+\r
+} // namespace BamTools\r
+\r
+#endif // BAMWRITER_H\r