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,
117 :
std::runtime_error((
"[ReaderFail] " + error).c_str()),
121 virtual const std::string&
error()
const {
return error_;}
128typedef 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";}
ReaderFail(const std::string &error)
virtual const std::string & error() const
interface for file readers
virtual void read(const std::string &filename, const std::string &head, std::vector< IdentDataPtr > &results, const Config &config=Config()) const =0
fill in a vector of IdentData structures; provides support for multi-run input files
virtual std::string identify(const std::string &filename, const std::string &head) const =0
return file type iff Reader recognizes the file, else empty;
virtual void read(const std::string &filename, IdentDataPtr &results, const Config &config=Config()) const
fill in a vector of IdentData structures; provides support for multi-run input files
bool accept(const std::string &filename, const std::string &head) const
return true iff Reader recognizes the file as one it should handle
virtual void read(const std::string &filename, const std::string &head, IdentDataPtr &results, const Config &config=Config()) const =0
fill in a vector of IdentData structures; provides support for multi-run input files
virtual const char * getType() const =0
virtual void read(const std::string &filename, const std::string &head, IdentData &results, const Config &config=Config()) const =0
fill in a vector of IdentData structures; provides support for multi-run input files
virtual void read(const std::string &filename, IdentData &results, const Config &config=Config()) const
fill in a vector of IdentData structures; provides support for multi-run input files
Reader container (composite pattern).
virtual const char * getType() const
virtual void read(const std::string &filename, std::vector< IdentDataPtr > &results, const Config &config=Config()) const
delegates to first child that identifies; provides support for multi-run input files
virtual std::string identify(const std::string &filename, const std::string &head) const
returns child name iff some child identifies, else empty string
reader_type * get()
returns pointer to Reader of the specified type
virtual void read(const std::string &filename, const std::string &head, IdentDataPtr &result, const Config &config=Config()) const
delegates to first child that identifies
const reader_type * get() const
returns const pointer to Reader of the specified type
virtual void read(const std::string &filename, IdentDataPtr &result, const Config &config=Config()) const
delegates to first child that identifies
virtual std::string identify(const std::string &filename) const
returns child name iff some child identifies, else empty string
virtual void read(const std::string &filename, IdentData &result, const Config &config=Config()) const
delegates to first child that identifies
virtual void read(const std::string &filename, const std::string &head, IdentData &result, const Config &config=Config()) const
delegates to first child that identifies
virtual void read(const std::string &filename, const std::string &head, std::vector< IdentDataPtr > &results, const Config &config=Config()) const
delegates to first child that identifies; provides support for multi-run input files
handles registration of IterationListeners and broadcast of update messages
boost::shared_ptr< IdentData > IdentDataPtr
PWIZ_API_DECL ReaderList operator+(const ReaderPtr &lhs, const ReaderPtr &rhs)
returns a list containing the lhs and rhs as readers
boost::shared_ptr< Reader > ReaderPtr
Implementation of the MzIdentMLType from the mzIdentML schema.
HACK: provide an option to read only file-level metadata; once we have an enumerable ResultList imple...
bool ignoreProteinDetectionList
const pwiz::util::IterationListenerRegistry * iterationListenerRegistry
bool ignoreSequenceCollectionAndAnalysisData
Config(bool ignoreSequenceCollectionAndAnalysisData=false, bool ignoreProteinDetectionList=false)