24 #ifndef _MZID_READER_HPP_ 25 #define _MZID_READER_HPP_ 52 Config(
bool ignoreSequenceCollectionAndAnalysisData =
false,
bool ignoreProteinDetectionList =
false)
53 : ignoreSequenceCollectionAndAnalysisData(ignoreSequenceCollectionAndAnalysisData),
54 ignoreProteinDetectionList(ignoreProteinDetectionList),
55 iterationListenerRegistry(NULL)
63 bool accept(
const std::string& filename,
64 const std::string& head)
const 66 return (identify(filename,head).length() != 0);
74 virtual std::string identify(
const std::string& filename,
75 const std::string& head)
const = 0;
78 virtual void read(
const std::string& filename,
83 virtual void read(
const std::string& filename,
84 const std::string& head,
89 virtual void read(
const std::string& filename,
94 virtual void read(
const std::string& filename,
95 const std::string& head,
100 virtual void read(
const std::string& filename,
101 const std::string& head,
102 std::vector<IdentDataPtr>& results,
105 virtual const char *getType()
const = 0;
117 :
std::runtime_error((
"[ReaderFail] " + error).c_str()),
121 virtual const std::string&
error()
const {
return error_;}
128 typedef boost::shared_ptr<Reader>
ReaderPtr;
138 public std::vector<ReaderPtr>
143 virtual std::string identify(
const std::string& filename)
const;
146 virtual std::string identify(
const std::string& filename,
147 const std::string& head)
const;
150 virtual void read(
const std::string& filename,
155 virtual void read(
const std::string& filename,
156 const std::string& head,
161 virtual void read(
const std::string& filename,
166 virtual void read(
const std::string& filename,
167 const std::string& head,
173 virtual void read(
const std::string& filename,
174 std::vector<IdentDataPtr>& results,
179 virtual void read(
const std::string& filename,
180 const std::string& head,
181 std::vector<IdentDataPtr>& results,
197 template <
typename reader_type>
200 for (iterator it=begin(); it!=end(); ++it)
202 reader_type* p =
dynamic_cast<reader_type*
>(it->get());
210 template <
typename reader_type>
211 const reader_type*
get()
const 213 return const_cast<ReaderList*
>(
this)->get<reader_type>();
216 virtual const char *
getType()
const {
return "ReaderList";}
229 #endif // _MZID_READER_HPP_ virtual const std::string & error() const
bool accept(const std::string &filename, const std::string &head) const
return true iff Reader recognizes the file as one it should handle
ReaderFail(const std::string &error)
PWIZ_API_DECL double & operator+=(double &d, const MZTolerance &tolerance)
virtual const char * getType() const
Config(bool ignoreSequenceCollectionAndAnalysisData=false, bool ignoreProteinDetectionList=false)
HACK: provide an option to read only file-level metadata; once we have an enumerable ResultList imple...
boost::shared_ptr< IdentData > IdentDataPtr
interface for file readers
Implementation of the MzIdentMLType from the mzIdentML schema.
bool ignoreSequenceCollectionAndAnalysisData
PWIZ_API_DECL void read(std::istream &is, CV &cv)
handles registration of IterationListeners and broadcast of update messages
PWIZ_API_DECL ReaderList operator+(const ReaderPtr &lhs, const ReaderPtr &rhs)
returns a list containing the lhs and rhs as readers
bool ignoreProteinDetectionList
boost::shared_ptr< Reader > ReaderPtr
Reader container (composite pattern).
const pwiz::util::IterationListenerRegistry * iterationListenerRegistry