X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamSequence.h;h=c1a8792065df16bdd1a10ba46f90b540ba7b6c95;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=97cdb96d04cec567a09015f95c106f0dab80c267;hpb=dc965ab6cd68e6e4b29544ae7340c571b0c7cf9f;p=bamtools.git diff --git a/src/api/SamSequence.h b/src/api/SamSequence.h index 97cdb96..c1a8792 100644 --- a/src/api/SamSequence.h +++ b/src/api/SamSequence.h @@ -1,58 +1,53 @@ // *************************************************************************** // 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 -#include +#include "api/api_global.h" #include namespace BamTools { -class API_EXPORT SamSequence { +struct API_EXPORT SamSequence { // ctor & dtor - public: - SamSequence(const std::string& name = ""); - explicit SamSequence(const SamSequence& other); - ~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() )