40ers::StreamFactory::instance()
58ers::StreamFactory::create_out_stream(
const std::string & format )
const
62 std::string::size_type start =
format.find(
'(' );
63 if ( start != std::string::npos )
65 key =
format.substr( 0, start );
66 std::string::size_type end =
format.find(
')', start );
67 if ( end != std::string::npos )
68 param =
format.substr( start + 1, end - start - 1 );
71 OutFunctionMap::const_iterator it = m_out_factories.find( key );
73 if( it != m_out_factories.end() )
77 return it->second( param );
101ers::StreamFactory::create_in_stream(
const std::string & stream,
102 const std::string & param )
const
104 return create_in_stream( stream, { param } );
116ers::StreamFactory::create_in_stream(
117 const std::string & stream,
118 const std::initializer_list<std::string> & params )
const
120 InFunctionMap::const_iterator it = m_in_factories.find( stream );
122 if( it != m_in_factories.end() )
126 return it->second( params );
130 throw ers::InvalidFormat(
ERS_HERE, stream, issue );
134 throw ers::InvalidFormat(
ERS_HERE, stream );
148ers::StreamFactory::register_in_stream(
const std::string & name, InputStreamCreator callback )
150 m_in_factories[name] = callback;
164ers::StreamFactory::register_out_stream(
const std::string & name, OutputStreamCreator callback )
166 m_out_factories[name] = callback;
172 StreamFactory::OutFunctionMap::const_iterator oit = sf.m_out_factories.begin();
173 for( ; oit != sf.m_out_factories.end(); ++oit )
175 out << oit->first <<
"\t\"" << oit->second <<
"\"" << std::endl;
178 StreamFactory::InFunctionMap::const_iterator iit = sf.m_in_factories.begin();
179 for( ; iit != sf.m_in_factories.end(); ++iit )
181 out << iit->first <<
"\t\"" << iit->second <<
"\"" << std::endl;
Base class for any user define issue.
ERS abstract output stream interface.
#define ERS_INTERNAL_ERROR(message)
FELIX Initialization std::string initerror FELIX queue timed out
std::ostream & operator<<(std::ostream &, const ers::Configuration &)