29ers::StreamFactory::instance()
47ers::StreamFactory::create_out_stream(
const std::string & format )
const
51 std::string::size_type start =
format.find(
'(' );
52 if ( start != std::string::npos )
54 key =
format.substr( 0, start );
55 std::string::size_type end =
format.find(
')', start );
56 if ( end != std::string::npos )
57 param =
format.substr( start + 1, end - start - 1 );
60 OutFunctionMap::const_iterator it = m_out_factories.find( key );
62 if( it != m_out_factories.end() )
66 return it->second( param );
90ers::StreamFactory::create_in_stream(
const std::string & stream,
91 const std::string & param )
const
93 return create_in_stream( stream, { param } );
105ers::StreamFactory::create_in_stream(
106 const std::string & stream,
107 const std::initializer_list<std::string> & params )
const
109 InFunctionMap::const_iterator it = m_in_factories.find( stream );
111 if( it != m_in_factories.end() )
115 return it->second( params );
119 throw ers::InvalidFormat(
ERS_HERE, stream, issue );
123 throw ers::InvalidFormat(
ERS_HERE, stream );
137ers::StreamFactory::register_in_stream(
const std::string & name, InputStreamCreator callback )
139 m_in_factories[name] = callback;
153ers::StreamFactory::register_out_stream(
const std::string & name, OutputStreamCreator callback )
155 m_out_factories[name] = callback;
161 StreamFactory::OutFunctionMap::const_iterator oit = sf.m_out_factories.begin();
162 for( ; oit != sf.m_out_factories.end(); ++oit )
164 out << oit->first <<
"\t\"" << oit->second <<
"\"" << std::endl;
167 StreamFactory::InFunctionMap::const_iterator iit = sf.m_in_factories.begin();
168 for( ; iit != sf.m_in_factories.end(); ++iit )
170 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 &)