]> git.donarmstrong.com Git - bamtools.git/blob - src/api/BamWriter.h
Reorganized source tree & build system
[bamtools.git] / src / api / BamWriter.h
1 // ***************************************************************************\r
2 // BamWriter.h (c) 2009 Michael Str�mberg, Derek Barnett\r
3 // Marth Lab, Department of Biology, Boston College\r
4 // All rights reserved.\r
5 // ---------------------------------------------------------------------------\r
6 // Last modified: 17 August 2010 (DB)\r
7 // ---------------------------------------------------------------------------\r
8 // Uses BGZF routines were adapted from the bgzf.c code developed at the Broad\r
9 // Institute.\r
10 // ---------------------------------------------------------------------------\r
11 // Provides the basic functionality for producing BAM files\r
12 // ***************************************************************************\r
13 \r
14 #ifndef BAMWRITER_H\r
15 #define BAMWRITER_H\r
16 \r
17 // C++ includes\r
18 #include <string>\r
19 \r
20 // BamTools includes\r
21 #include "BamAux.h"\r
22 \r
23 namespace BamTools {\r
24 \r
25 class BamWriter {\r
26 \r
27     // constructor/destructor\r
28     public:\r
29         BamWriter(void);\r
30         ~BamWriter(void);\r
31 \r
32     // public interface\r
33     public:\r
34         // closes the alignment archive\r
35         void Close(void);\r
36         // opens the alignment archive\r
37         bool Open(const std::string& filename, \r
38                   const std::string& samHeader, \r
39                   const BamTools::RefVector& referenceSequences, \r
40                   bool writeUncompressed = false);\r
41         // saves the alignment to the alignment archive\r
42         void SaveAlignment(const BamTools::BamAlignment& al);\r
43 \r
44     // private implementation\r
45     private:\r
46         struct BamWriterPrivate;\r
47         BamWriterPrivate* d;\r
48 };\r
49 \r
50 } // namespace BamTools\r
51 \r
52 #endif // BAMWRITER_H\r