23 #ifndef _SPECTRUMLIST_UIMF_
24 #define _SPECTRUMLIST_UIMF_
34 #include <boost/container/flat_map.hpp>
38 #ifdef PWIZ_READER_UIMF
39 #include "pwiz_aux/msrc/utility/vendor_api/UIMF/UIMFReader.hpp"
41 #include <boost/thread.hpp>
42 using namespace pwiz::vendor_api::UIMF;
43 #endif // PWIZ_READER_UIMF
50 using boost::shared_ptr;
56 virtual size_t size()
const;
58 virtual size_t find(
const string&
id)
const;
59 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData)
const;
64 #ifdef PWIZ_READER_UIMF
70 UIMFReaderPtr rawfile_;
73 mutable boost::mutex readMutex;
81 mutable vector<IndexEntry> index_;
82 mutable map<string, size_t> idToIndexMap_;
83 mutable boost::container::flat_map<double, size_t> scanTimeToFrameMap_;
85 void createIndex()
const;
86 #endif // PWIZ_READER_UIMF
94 #endif // _SPECTRUMLIST_UIMF_