]> git.donarmstrong.com Git - bamtools.git/blob - src/api/internal/SamHeaderValidator_p.h
Added SAM header-handling classes for read/write/validate.
[bamtools.git] / src / api / internal / SamHeaderValidator_p.h
1 // ***************************************************************************
2 // SamHeaderValidator.h (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 23 December 2010 (DB)
7 // ---------------------------------------------------------------------------
8 // Provides functionality for validating SamHeader data
9 // ***************************************************************************
10
11 #ifndef SAM_HEADER_VALIDATOR_P_H
12 #define SAM_HEADER_VALIDATOR_P_H
13
14 //  -------------
15 //  W A R N I N G
16 //  -------------
17 //
18 // This file is not part of the BamTools API.  It exists purely as an
19 // implementation detail. This header file may change from version to version
20 // without notice, or even be removed.
21 //
22 // We mean it.
23
24 #include <string>
25 #include <vector>
26
27 namespace BamTools {
28
29 class SamHeader;
30
31 namespace Internal {
32
33 class SamHeaderValidator {
34
35     public:
36         SamHeaderValidator(const BamTools::SamHeader& header);
37         ~SamHeaderValidator(void);
38
39     public:
40         // validates SamHeader data
41         // prints error & warning messages to stderr when (verbose == true)
42         bool Validate(bool verbose = false);
43
44     private:
45         struct SamHeaderValidatorPrivate;
46         SamHeaderValidatorPrivate* d;
47 };
48
49 } // namespace Internal
50 } // namespace BamTools
51
52 #endif // SAM_HEADER_VALIDATOR_P_H