]> git.donarmstrong.com Git - bamtools.git/blob - src/api/BamWriter.h
Extracted BamReaderPrivate & BamWriterPrivate from inner classes.
[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: 19 November 2010 (DB)\r
7 // ---------------------------------------------------------------------------\r
8 // Provides the basic functionality for producing BAM files\r
9 // ***************************************************************************\r
10 \r
11 #ifndef BAMWRITER_H\r
12 #define BAMWRITER_H\r
13 \r
14 #include <api/api_global.h>\r
15 #include <api/BamAlignment.h>\r
16 #include <string>\r
17 \r
18 namespace BamTools {\r
19 \r
20 namespace Internal {\r
21     class BamWriterPrivate;\r
22 } // namespace Internal\r
23 \r
24 class API_EXPORT BamWriter {\r
25 \r
26     // constructor/destructor\r
27     public:\r
28         BamWriter(void);\r
29         ~BamWriter(void);\r
30 \r
31     // public interface\r
32     public:\r
33         // closes the alignment archive\r
34         void Close(void);\r
35         // opens the alignment archive\r
36         bool Open(const std::string& filename, \r
37                   const std::string& samHeader, \r
38                   const BamTools::RefVector& referenceSequences, \r
39                   bool writeUncompressed = false);\r
40         // saves the alignment to the alignment archive\r
41         void SaveAlignment(const BamTools::BamAlignment& al);\r
42 \r
43     // private implementation\r
44     private:\r
45         Internal::BamWriterPrivate* d;\r
46 };\r
47 \r
48 } // namespace BamTools\r
49 \r
50 #endif // BAMWRITER_H\r