X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2FSamHeaderVersion_p.h;h=4f85df0d231c6ef9d2590cf2c8669a59e98ca4f8;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=b569248879f8c5bf8133f4975d596f11fc6ef019;hpb=6f5c226a2892eca7e3446db18928ed0ce9f65daf;p=bamtools.git diff --git a/src/api/internal/SamHeaderVersion_p.h b/src/api/internal/SamHeaderVersion_p.h index b569248..4f85df0 100644 --- a/src/api/internal/SamHeaderVersion_p.h +++ b/src/api/internal/SamHeaderVersion_p.h @@ -1,9 +1,8 @@ // *************************************************************************** // SamHeaderVersion.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 comparing SAM header versions // ************************************************************************* @@ -21,7 +20,7 @@ // // We mean it. -#include +#include "api/SamConstants.h" #include #include @@ -59,8 +58,8 @@ class SamHeaderVersion { unsigned int MajorVersion(void) const { return m_majorVersion; } unsigned int MinorVersion(void) const { return m_minorVersion; } - inline void SetVersion(const std::string& version); - inline std::string ToString(void) const; + void SetVersion(const std::string& version); + std::string ToString(void) const; // data members private: @@ -74,28 +73,28 @@ void SamHeaderVersion::SetVersion(const std::string& version) { // do nothing if version is empty if ( !version.empty() ) { + std::stringstream versionStream(""); + // do nothing if period not found const size_t periodFound = version.find(Constants::SAM_PERIOD); if ( periodFound != std::string::npos ) { // store major version if non-empty and contains only digits const std::string& majorVersion = version.substr(0, periodFound); - if ( majorVersion.empty() ) { + versionStream.str(majorVersion); + if ( !majorVersion.empty() ) { const size_t nonDigitFound = majorVersion.find_first_not_of(Constants::SAM_DIGITS); - if ( nonDigitFound == std::string::npos ) { - std::stringstream major(majorVersion); - major >> m_majorVersion; - } + if ( nonDigitFound == std::string::npos ) + versionStream >> m_majorVersion; } // store minor version if non-empty and contains only digits const std::string& minorVersion = version.substr(periodFound + 1); - if ( minorVersion.empty() ) { + versionStream.str(minorVersion); + if ( !minorVersion.empty() ) { const size_t nonDigitFound = minorVersion.find_first_not_of(Constants::SAM_DIGITS); - if ( nonDigitFound == std::string::npos ) { - std::stringstream minor(minorVersion); - minor >> m_minorVersion; - } + if ( nonDigitFound == std::string::npos ) + versionStream >> m_minorVersion; } } }