1 #ifndef GAUDI_FUNCTIONAL_PRODUCER_H 2 #define GAUDI_FUNCTIONAL_PRODUCER_H 8 namespace Gaudi {
namespace Functional {
10 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
class Producer;
12 template <
typename... Out,
typename Traits_>
20 {
return invoke(std::index_sequence_for<Out...>{}); }
31 (
put(std::get<O>(this->m_outputs),std::get<O>(
as_const(*
this)() )),0)...
34 (e.
code() ? this->warning() : this->error() )
42 template <
typename Out,
typename Traits_>
51 put(std::get<0>(this->m_outputs),
as_const(*
this)() );
53 this->error() <<
"Error during transform: " << e.
message() <<
" returning " << e.
code() <<
endmsg;
virtual const std::string & message() const
error message to be printed
constexpr std::add_const< T >::type & as_const(T &t) noexcept
Define general base for Gaudi exception.
class MergingTransformer< Out(const vector_of_const_< In > void
virtual const StatusCode & code() const
StatusCode for Exception.
StatusCode execute() override final
class MergingTransformer< Out(const vector_of_const_< In > Traits_
This class is used for returning status codes from appropriate routines.
StatusCode execute() override final
virtual Out operator()(const vector_of_const_< In > &inputs) const =0
StatusCode invoke(std::index_sequence< O... >)
Helper functions to set/get the application return code.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Out1 * put(DataObjectHandle< Out1 > &out_handle, Out2 &&out)