]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/api/SamSequence.h
Updated Doxygen comments
[bamtools.git] / src / api / SamSequence.h
index db6891df23b230a4a2d831d2377f40e27e2e46aa..aea59cc8945ab4d461dc693ac9cc779bf860a155 100644 (file)
@@ -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
 
 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:<Name>
-        std::string Length;     // LN:<Length>
-        std::string AssemblyID; // AS:<AssemblyID>
-        std::string Checksum;   // M5:<Checksum>
-        std::string URI;        // UR:<URI>
-        std::string Species;    // SP:<Species>
+    std::string AssemblyID;          // AS:<AssemblyID>
+    std::string Checksum;            // M5:<Checksum>
+    std::string Length;              // LN:<Length>      *Required for valid SAM header*
+    std::string Name;                // SN:<Name>        *Required for valid SAM header*
+    std::string Species;             // SP:<Species>
+    std::string URI;                 // UR:<URI>
 };
 
-// ---------------------------------------------------
-// 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() )