24 #ifndef _MZID_READER_HPP_
25 #define _MZID_READER_HPP_
51 Config(
bool ignoreSequenceCollectionAndAnalysisData =
false)
52 : ignoreSequenceCollectionAndAnalysisData(ignoreSequenceCollectionAndAnalysisData),
53 iterationListenerRegistry(NULL)
61 bool accept(
const std::string& filename,
62 const std::string& head)
const
64 return (identify(filename,head).length() != 0);
72 virtual std::string identify(
const std::string& filename,
73 const std::string& head)
const = 0;
76 virtual void read(
const std::string& filename,
78 const Config& config = Config())
const;
81 virtual void read(
const std::string& filename,
82 const std::string& head,
84 const Config& config = Config())
const = 0;
87 virtual void read(
const std::string& filename,
89 const Config& config = Config())
const;
92 virtual void read(
const std::string& filename,
93 const std::string& head,
95 const Config& config = Config())
const = 0;
98 virtual void read(
const std::string& filename,
99 const std::string& head,
100 std::vector<IdentDataPtr>& results,
101 const Config& config = Config())
const = 0;
103 virtual const char *getType()
const = 0;
115 : std::runtime_error((
"[ReaderFail] " + error).c_str()),
119 virtual const std::string&
error()
const {
return error_;}
126 typedef boost::shared_ptr<Reader>
ReaderPtr;
136 public std::vector<ReaderPtr>
141 virtual std::string identify(
const std::string& filename)
const;
144 virtual std::string identify(
const std::string& filename,
145 const std::string& head)
const;
148 virtual void read(
const std::string& filename,
153 virtual void read(
const std::string& filename,
154 const std::string& head,
159 virtual void read(
const std::string& filename,
164 virtual void read(
const std::string& filename,
165 const std::string& head,
171 virtual void read(
const std::string& filename,
172 std::vector<IdentDataPtr>& results,
177 virtual void read(
const std::string& filename,
178 const std::string& head,
179 std::vector<IdentDataPtr>& results,
195 template <
typename reader_type>
198 for (iterator it=begin(); it!=end(); ++it)
200 reader_type* p =
dynamic_cast<reader_type*
>(it->get());
208 template <
typename reader_type>
209 const reader_type*
get()
const
211 return const_cast<ReaderList*
>(
this)->get<reader_type>();
214 virtual const char *
getType()
const {
return "ReaderList";}
227 #endif // _MZID_READER_HPP_