28 "Creator for the \"" << key <<
"\" stream is not found",
35 template <
class >
class SingletonCreator;
48 friend std::ostream &
operator<<( std::ostream &,
const ers::StreamFactory & );
49 template <
class >
friend class SingletonCreator;
51 typedef ers::InputStream * (*InputStreamCreator) (
const std::initializer_list<std::string> & params );
56 static StreamFactory & instance();
58 void register_in_stream(
const std::string & name,
59 InputStreamCreator callback );
61 void register_out_stream(
const std::string & name,
62 OutputStreamCreator callback );
64 InputStream * create_in_stream(
const std::string & stream,
65 const std::string & filter )
const;
67 InputStream * create_in_stream(
const std::string & stream,
68 const std::initializer_list<std::string> & params )
const;
70 OutputStream * create_out_stream(
const std::string & format )
const;
76 typedef std::map<std::string, InputStreamCreator> InFunctionMap;
77 typedef std::map<std::string, OutputStreamCreator> OutFunctionMap;
79 InFunctionMap m_in_factories;
80 OutFunctionMap m_out_factories;
83 std::ostream &
operator<<( std::ostream &,
const ers::StreamFactory & );