23 #ifndef _PROTEOME_READER_HPP_
24 #define _PROTEOME_READER_HPP_
44 bool accept(
const std::string& uri,
45 boost::shared_ptr<std::istream> uriStreamPtr)
const
47 return (identify(uri, uriStreamPtr).length() != 0);
55 virtual std::string identify(
const std::string& uri,
56 boost::shared_ptr<std::istream> uriStreamPtr)
const = 0;
59 virtual void read(
const std::string& uri,
63 virtual void read(
const std::string& uri,
64 boost::shared_ptr<std::istream> uriStreamPtr,
68 virtual const char *getType()
const = 0;
78 : std::runtime_error((
"[ReaderFail] " + error).c_str()),
82 virtual const std::string&
error()
const {
return error_;}
99 public std::vector<ReaderPtr>
104 virtual std::string identify(
const std::string& uri)
const;
107 virtual std::string identify(
const std::string& uri,
108 boost::shared_ptr<std::istream> uriStreamPtr)
const;
111 virtual void read(
const std::string& uri,
115 virtual void read(
const std::string& uri,
116 boost::shared_ptr<std::istream> uriStreamPtr,
133 template <
typename reader_type>
136 for (iterator it=begin(); it!=end(); ++it)
138 reader_type* p =
dynamic_cast<reader_type*
>(it->get());
146 template <
typename reader_type>
147 const reader_type*
get()
const
149 return const_cast<ReaderList*
>(
this)->get<reader_type>();
152 virtual const char *
getType()
const {
return "ReaderList";}
165 #endif // _PROTEOME_READER_HPP_