]> git.donarmstrong.com Git - bamtools.git/commitdiff
Minor update to API version 0.9.3 - addition of SamHeader::SetHeaderText().
authorderek <derekwbarnett@gmail.com>
Wed, 12 Jan 2011 22:47:04 +0000 (17:47 -0500)
committerderek <derekwbarnett@gmail.com>
Wed, 12 Jan 2011 22:47:04 +0000 (17:47 -0500)
src/api/CMakeLists.txt
src/api/SamHeader.cpp
src/api/SamHeader.h
src/api/internal/BamHeader_p.cpp
src/api/internal/SamHeaderVersion_p.h

index 6aab198dc26fa6c4ca6505ff2e7558bb7ab605c1..b97239b44017d13e21f9697455f6ae9516b534f2 100644 (file)
@@ -37,7 +37,7 @@ set( BamToolsAPISources
 
 # create main BamTools API shared library
 add_library( BamTools SHARED ${BamToolsAPISources} )
-set_target_properties( BamTools PROPERTIES SOVERSION "0.9.2" )
+set_target_properties( BamTools PROPERTIES SOVERSION "0.9.3" )
 set_target_properties( BamTools PROPERTIES OUTPUT_NAME "bamtools" )
 
 # create main BamTools API static library
index 74381f0967df4e4181a0919835b512cd0f09d723..5134630a7d3a65b11e7e0fe07afe0357ed74e328 100644 (file)
@@ -58,6 +58,16 @@ void SamHeader::Clear(void) {
     Comments.clear();
 }
 
+void SamHeader::SetHeaderText(const std::string& headerText) {
+
+    // clear prior data
+    Clear();
+
+    // parse header text into data
+    SamFormatParser parser(*this);
+    parser.Parse(headerText);
+}
+
 // retrieve the SAM header, with any local modifications
 string SamHeader::ToString(void) const {
     SamFormatPrinter printer(*this);
index 899459cd54e8afe2e733f5277625cb77de39e6a1..5de15606577fe59f378246de5c04c245ba4ecc6b 100644 (file)
@@ -3,7 +3,7 @@
 // Marth Lab, Department of Biology, Boston College
 // All rights reserved.
 // ---------------------------------------------------------------------------
-// Last modified: 23 December 2010 (DB)
+// Last modified: 12 January 2011 (DB)
 // ---------------------------------------------------------------------------
 // Provides functionality for querying/manipulating SAM header data
 // **************************************************************************
@@ -38,6 +38,9 @@ struct API_EXPORT SamHeader {
         // otherwise, output is suppressed and only validation check occurs
         bool IsValid(bool verbose = false) const;
 
+        // replaces SamHeader contents with headerText
+        void SetHeaderText(const std::string& headerText);
+
         // retrieves the printable, SAM-formatted header
         // (with any local modifications since construction)
         std::string ToString(void) const;
index c613b12f8580bdbb4fc8c5fc25867d6782b8d036..2fb8257981614d2c509366c50dabb8c0ccf63907 100644 (file)
@@ -31,9 +31,15 @@ struct BamHeader::BamHeaderPrivate {
 
     // ctor
     BamHeaderPrivate(void)
-        : m_samHeader(0)
+        : m_samHeader(new SamHeader(""))
     { }
 
+    // dtor
+    ~BamHeaderPrivate(void) {
+        delete m_samHeader;
+        m_samHeader = 0;
+    }
+
     // 'public' interface
     bool Load(BgzfData* stream);
 
@@ -110,7 +116,7 @@ bool BamHeader::BamHeaderPrivate::ReadHeaderText(BgzfData* stream, const uint32_
     const unsigned bytesRead = stream->Read(headerText, length);
     const bool readOk = ( bytesRead == length );
     if ( readOk )
-        m_samHeader = new SamHeader( (string)((const char*)headerText) );
+        m_samHeader->SetHeaderText( (string)((const char*)headerText) );
     else
         fprintf(stderr, "BAM header error - could not read header text\n");
 
@@ -134,8 +140,7 @@ BamHeader::~BamHeader(void) {
 }
 
 void BamHeader::Clear(void) {
-    delete d->m_samHeader;
-    d->m_samHeader = new SamHeader("");
+    d->m_samHeader->Clear();
 }
 
 bool BamHeader::IsValid(void) const {
index ff9647136adcc416b842263cae9e70300c704c27..b569248879f8c5bf8133f4975d596f11fc6ef019 100644 (file)
@@ -1,6 +1,26 @@
+// ***************************************************************************
+// SamHeaderVersion.h (c) 2010 Derek Barnett
+// Marth Lab, Department of Biology, Boston College
+// All rights reserved.
+// ---------------------------------------------------------------------------
+// Last modified: 23 December 2010 (DB)
+// ---------------------------------------------------------------------------
+// Provides functionality for comparing SAM header versions
+// *************************************************************************
+
 #ifndef SAM_HEADERVERSION_P_H
 #define SAM_HEADERVERSION_P_H
 
+//  -------------
+//  W A R N I N G
+//  -------------
+//
+// This file is not part of the BamTools API.  It exists purely as an
+// implementation detail. This header file may change from version to version
+// without notice, or even be removed.
+//
+// We mean it.
+
 #include <api/SamConstants.h>
 #include <sstream>
 #include <string>