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,
80 const Config& config = Config())
const;
83 virtual void read(
const std::string& filename,
84 const std::string& head,
86 const Config& config = Config())
const = 0;
89 virtual void read(
const std::string& filename,
91 const Config& config = Config())
const;
94 virtual void read(
const std::string& filename,
95 const std::string& head,
97 const Config& config = Config())
const = 0;
100 virtual void read(
const std::string& filename,
101 const std::string& head,
102 std::vector<IdentDataPtr>& results,
103 const Config& config = Config())
const = 0;
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_