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) {
64 key =
format.substr(0, start);
65 std::string::size_type end =
format.find(
')', start);
66 if (end != std::string::npos)
67 param =
format.substr(start + 1, end - start - 1);
70 OutFunctionMap::const_iterator it = m_out_factories.find(key);
72 if (it != m_out_factories.end()) {
74 return it->second(param);
94ers::StreamFactory::create_in_stream(
const std::string& stream,
const std::string& param)
const
96 return create_in_stream(stream, { param });
108ers::StreamFactory::create_in_stream(
const std::string& stream,
const std::initializer_list<std::string>& params)
const
110 InFunctionMap::const_iterator it = m_in_factories.find(stream);
112 if (it != m_in_factories.end()) {
114 return it->second(params);
116 throw ers::InvalidFormat(
ERS_HERE, stream, issue);
120 throw ers::InvalidFormat(
ERS_HERE, stream);
134ers::StreamFactory::register_in_stream(
const std::string& name, InputStreamCreator callback)
136 m_in_factories[name] = callback;
150ers::StreamFactory::register_out_stream(
const std::string& name, OutputStreamCreator callback)
152 m_out_factories[name] = callback;
158 StreamFactory::OutFunctionMap::const_iterator oit = sf.m_out_factories.begin();
159 for (; oit != sf.m_out_factories.end(); ++oit) {
160 out << oit->first <<
"\t\"" << oit->second <<
"\"" << std::endl;
163 StreamFactory::InFunctionMap::const_iterator iit = sf.m_in_factories.begin();
164 for (; iit != sf.m_in_factories.end(); ++iit) {
165 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 &)