X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2FBamIndexFactory_p.cpp;h=4e9d1f28a4040aee6bc6140ffa23a61fad53f477;hb=2e049ed7f28881bce09653e60f5aea54bfd7afbf;hp=c91f43374f1fc0318c43c46e869fe0619afa4b1d;hpb=1a93ff03d7e40d97c32e6f5966045ceaeb2f038a;p=bamtools.git diff --git a/src/api/internal/BamIndexFactory_p.cpp b/src/api/internal/BamIndexFactory_p.cpp index c91f433..4e9d1f2 100644 --- a/src/api/internal/BamIndexFactory_p.cpp +++ b/src/api/internal/BamIndexFactory_p.cpp @@ -2,7 +2,7 @@ // BamIndexFactory_p.cpp (c) 2011 Derek Barnett // Marth Lab, Department of Biology, Boston College // --------------------------------------------------------------------------- -// Last modified: 5 April 2011 (DB) +// Last modified: 6 October 2011 (DB) // --------------------------------------------------------------------------- // Provides interface for generating BamIndex implementations // *************************************************************************** @@ -13,8 +13,6 @@ #include using namespace BamTools; using namespace BamTools::Internal; - -#include using namespace std; // generates index filename from BAM filename (depending on requested type) @@ -26,7 +24,6 @@ const string BamIndexFactory::CreateIndexFilename(const string& bamFilename, case ( BamIndex::STANDARD ) : return ( bamFilename + BamStandardIndex::Extension() ); case ( BamIndex::BAMTOOLS ) : return ( bamFilename + BamToolsIndex::Extension() ); default : - cerr << "BamIndexFactory ERROR: unknown index type" << type << endl; return string(); } } @@ -59,7 +56,6 @@ BamIndex* BamIndexFactory::CreateIndexOfType(const BamIndex::IndexType& type, case ( BamIndex::STANDARD ) : return new BamStandardIndex(reader); case ( BamIndex::BAMTOOLS ) : return new BamToolsIndex(reader); default : - cerr << "BamIndexFactory ERROR: unknown index type " << type << endl; return 0; } } @@ -72,7 +68,7 @@ const string BamIndexFactory::FileExtension(const string& filename) { return string(); // look for last dot in filename - size_t lastDotPosition = filename.find_last_of('.'); + const size_t lastDotPosition = filename.find_last_of('.'); // if none found, return empty string if ( lastDotPosition == string::npos ) @@ -88,6 +84,10 @@ const string BamIndexFactory::FileExtension(const string& filename) { const string BamIndexFactory::FindIndexFilename(const string& bamFilename, const BamIndex::IndexType& preferredType) { + // skip if BAM filename provided is empty + if ( bamFilename.empty() ) + return string(); + // try to find index of preferred type first // return index filename if found string indexFilename = CreateIndexFilename(bamFilename, preferredType);