X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamSequence.h;h=aea59cc8945ab4d461dc693ac9cc779bf860a155;hb=25a2a1f6598b6452455da96c28a7f58fd9e7ed2d;hp=db6891df23b230a4a2d831d2377f40e27e2e46aa;hpb=ff5f2ec7c437660185a406d01739f42534105412;p=bamtools.git diff --git a/src/api/SamSequence.h b/src/api/SamSequence.h index db6891d..aea59cc 100644 --- a/src/api/SamSequence.h +++ b/src/api/SamSequence.h @@ -1,12 +1,11 @@ // *************************************************************************** // SamSequence.h (c) 2010 Derek Barnett // Marth Lab, Department of Biology, Boston College -// All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 23 December 2010 (DB) +// Last modified: 10 October 2011 (DB) // --------------------------------------------------------------------------- -// Provides functionality for querying/manipulating sequence data -// ************************************************************************** +// Provides direct read/write access to the SAM sequence data fields. +// *************************************************************************** #ifndef SAM_SEQUENCE_H #define SAM_SEQUENCE_H @@ -16,42 +15,39 @@ namespace BamTools { -class API_EXPORT SamSequence { +struct API_EXPORT SamSequence { // ctor & dtor - public: - SamSequence(const std::string& name = ""); - ~SamSequence(void); - - // public methods - public: - - // clear all contents - void Clear(void); - - // convenience methods to check if SamSequence contains these values: - bool HasName(void) const; - bool HasLength(void) const; - bool HasAssemblyID(void) const; - bool HasChecksum(void) const; - bool HasURI(void) const; - bool HasSpecies(void) const; + SamSequence(void); + SamSequence(const std::string& name, const int& length); + SamSequence(const std::string& name, const std::string& length); + SamSequence(const SamSequence& other); + ~SamSequence(void); + + // query/modify entire sequence + void Clear(void); // clears all contents + + // convenience query methods + bool HasAssemblyID(void) const; // returns true if sequence has an assembly ID + bool HasChecksum(void) const; // returns true if sequence has an MD5 checksum + bool HasLength(void) const; // returns true if sequence has a length + bool HasName(void) const; // returns true if sequence has a name + bool HasSpecies(void) const; // returns true if sequence has a species ID + bool HasURI(void) const; // returns true if sequence has a URI // data members - public: - std::string Name; // SN: - std::string Length; // LN: - std::string AssemblyID; // AS: - std::string Checksum; // M5: - std::string URI; // UR: - std::string Species; // SP: + std::string AssemblyID; // AS: + std::string Checksum; // M5: + std::string Length; // LN: *Required for valid SAM header* + std::string Name; // SN: *Required for valid SAM header* + std::string Species; // SP: + std::string URI; // UR: }; -// --------------------------------------------------- -// comparison operators - -// for equality: compare Name, Length, & Checksum (if it exists for both) -inline bool operator==(const SamSequence& lhs, const SamSequence& rhs) { +/*! \fn bool operator==(const SamSequence& lhs, const SamSequence& rhs) + \brief tests equality by comparing sequence names, lengths, & checksums (if available) +*/ +API_EXPORT inline bool operator==(const SamSequence& lhs, const SamSequence& rhs) { if ( lhs.Name != rhs.Name ) return false; if ( lhs.Length != rhs.Length ) return false; if ( lhs.HasChecksum() && rhs.HasChecksum() )