X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamHeader.h;h=50049947e627a29f5b077cb719b0c1a7874bb75a;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=3b67621ac4dca6bd94aba4293b7d944bf7eba5e8;hpb=72f5b82ad353b4cc9d6f8153f1ad19cc387b9597;p=bamtools.git diff --git a/src/api/SamHeader.h b/src/api/SamHeader.h index 3b67621..5004994 100644 --- a/src/api/SamHeader.h +++ b/src/api/SamHeader.h @@ -2,7 +2,7 @@ // SamHeader.h (c) 2010 Derek Barnett // Marth Lab, Department of Biology, Boston College // --------------------------------------------------------------------------- -// Last modified: 18 April 2011 (DB) +// Last modified: 10 October 2011 (DB) // --------------------------------------------------------------------------- // Provides direct read/write access to the SAM header data fields. // *************************************************************************** @@ -10,10 +10,10 @@ #ifndef SAM_HEADER_H #define SAM_HEADER_H -#include -#include -#include -#include +#include "api/api_global.h" +#include "api/SamProgramChain.h" +#include "api/SamReadGroupDictionary.h" +#include "api/SamSequenceDictionary.h" #include #include @@ -28,27 +28,29 @@ struct API_EXPORT SamHeader { // query/modify entire SamHeader void Clear(void); // clears all header contents + std::string GetErrorString(void) const; + bool HasError(void) const; bool IsValid(bool verbose = false) const; // returns true if SAM header is well-formed void SetHeaderText(const std::string& headerText); // replaces data fields with contents of SAM-formatted text std::string ToString(void) const; // returns the printable, SAM-formatted header text // convenience query methods - bool HasVersion(void) const; // returns true if header contains format version entry - bool HasSortOrder(void) const; // returns true if header contains sort order entry - bool HasGroupOrder(void) const; // returns true if header contains group order entry - bool HasSequences(void) const; // returns true if header contains any sequence entries - bool HasReadGroups(void) const; // returns true if header contains any read group entries - bool HasPrograms(void) const; // returns true if header contains any program record entries - bool HasComments(void) const; // returns true if header contains comments + bool HasVersion(void) const; // returns true if header contains format version entry + bool HasSortOrder(void) const; // returns true if header contains sort order entry + bool HasGroupOrder(void) const; // returns true if header contains group order entry + bool HasSequences(void) const; // returns true if header contains any sequence entries + bool HasReadGroups(void) const; // returns true if header contains any read group entries + bool HasPrograms(void) const; // returns true if header contains any program record entries + bool HasComments(void) const; // returns true if header contains comments // -------------- // data members // -------------- // header metadata (@HD line) - std::string Version; // VN: *Required for valid SAM header, if @HD record is present* - std::string SortOrder; // SO: - std::string GroupOrder; // GO: + std::string Version; // VN: *Required, if @HD record is present* + std::string SortOrder; // SO: + std::string GroupOrder; // GO: // header sequences (@SQ entries) SamSequenceDictionary Sequences; @@ -61,6 +63,10 @@ struct API_EXPORT SamHeader { // header comments (@CO entries) std::vector Comments; + + // internal data + private: + mutable std::string m_errorString; }; } // namespace BamTools