- return result;
-}
-
-BamReader* BamMultiReaderPrivate::OpenReader(const std::string& filename) {
-
- // create new BamReader
- BamReader* reader = new BamReader;
-
- // if reader opens OK
- if ( reader->Open(filename) ) {
-
- // attempt to read first alignment (sanity check)
- // if ok, then return BamReader pointer
- BamAlignment al;
- if ( reader->GetNextAlignmentCore(al) )
- return reader;
-
- // could not read alignment
- else {
- cerr << "BamMultiReader WARNING: Could not read first alignment from "
- << filename << ", ignoring file" << endl;
- }
- }
-
- // reader could not open
- else {
- cerr << "BamMultiReader WARNING: Could not open "
- << filename << ", ignoring file" << endl;
- }
-
- // if we get here, there was a problem with this BAM file (opening or reading)
- // clean up memory allocation & return null pointer
- delete reader;
- return 0;
-}
-
-// print associated filenames to stdout
-void BamMultiReaderPrivate::PrintFilenames(void) const {
- const vector<string>& filenames = Filenames();
- vector<string>::const_iterator filenameIter = filenames.begin();
- vector<string>::const_iterator filenameEnd = filenames.end();
- for ( ; filenameIter != filenameEnd; ++filenameIter )
- cout << (*filenameIter) << endl;
+ if ( errorsEncountered ) {
+ const string currentError = m_errorString;
+ const string message = string("could not open all index files: \n\t") + currentError;
+ SetErrorString("BamMultiReader::OpenIndexes", message);
+ return false;
+ } else
+ return true;