virtual void read(const std::string& filename, const std::string& head, MSData& result, int runIndex = 0) const { if (runIndex != 0) throw ReaderFail("[Reader_mzML::read] multiple runs not supported"); shared_ptr<istream> is(new pwiz::util::random_access_compressed_ifstream(filename.c_str())); if (!is.get() || !*is) throw runtime_error(("[Reader_mzML::read] Unable to open file " + filename).c_str()); switch (type(*is)) { case Type_mzML: { Serializer_mzML::Config config; config.indexed = false; Serializer_mzML serializer(config); serializer.read(is, result); break; } case Type_mzML_Indexed: { Serializer_mzML serializer; serializer.read(is, result); break; } case Type_Unknown: default: { throw runtime_error("[MSDataFile::Reader_mzML] This isn't happening."); } } fillInCommonMetadata(filename, result); }
void testHasBinaryData(SpectrumListPtr sl) { if (os_) *os_ << "testHasBinaryData:\n"; MSData msd; examples::initializeTiny(msd); shared_ptr<stringstream> ss(new stringstream); Serializer_mzML serializer; serializer.write(*ss, msd); MSData msd2; serializer.read(ss, msd2); sl = msd2.run.spectrumListPtr; { SpectrumList_Filter filter(sl, HasBinaryDataPredicate(DetailLevel_FullMetadata)); unit_assert(filter.empty()); } { SpectrumList_Filter filter(sl, HasBinaryDataPredicate(DetailLevel_FullData)); if (os_) { printSpectrumList(filter, *os_); *os_ << endl; } unit_assert_operator_equal(4, filter.size()); } }