| 61 | } |
| 62 | |
| 63 | MSSpectrum CachedmzML::getSpectrum(Size id) |
| 64 | { |
| 65 | OPENMS_PRECONDITION(id < getNrSpectra(), "Id cannot be larger than number of spectra"); |
| 66 | |
| 67 | if ( !ifs_.seekg(spectra_index_[id]) ) |
| 68 | { |
| 69 | std::cerr << "Error while reading spectrum " << id << " - seekg created an error when trying to change position to " << spectra_index_[id] << "." << std::endl; |
| 70 | std::cerr << "Maybe an invalid position was supplied to seekg, this can happen for example when reading large files (>2GB) on 32bit systems." << std::endl; |
| 71 | throw Exception::ParseError(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, |
| 72 | "Error while changing position of input stream pointer.", filename_cached_); |
| 73 | } |
| 74 | |
| 75 | MSSpectrum s = meta_ms_experiment_.getSpectrum(id); |
| 76 | Internal::CachedMzMLHandler::readSpectrum(s, ifs_); |
| 77 | return s; |
| 78 | } |
| 79 | |
| 80 | MSChromatogram CachedmzML::getChromatogram(Size id) |
| 81 | { |