1 #ifndef GAUDI_FUNCTIONAL_PRODUCER_H 2 #define GAUDI_FUNCTIONAL_PRODUCER_H 12 template <
typename Signature,
typename Traits_,
bool isLegacy>
15 template <
typename... Out,
typename Traits_>
23 [&](
auto&... ohandle ) {
25 [&ohandle...](
auto&&... data ) {
26 ( details::put( ohandle, std::forward<decltype( data )>( data ) ), ... );
28 std::as_const( *
this )() );
39 virtual std::tuple<Out...> operator()()
const = 0;
42 template <
typename... Out,
typename Traits_>
51 [&](
auto&... ohandle ) {
53 [&ohandle...](
auto&&... data ) {
54 ( details::put( ohandle, std::forward<decltype( data )>( data ) ), ... );
67 virtual std::tuple<Out...> operator()()
const = 0;
70 template <
typename Out,
typename Traits_>
76 details::put( std::get<0>( this->m_outputs ), std::as_const( *
this )() );
85 virtual Out operator()()
const = 0;
88 template <
typename Out,
typename Traits_>
94 details::put( std::get<0>( this->m_outputs ), ( *
this )() );
103 virtual Out operator()()
const = 0;
108 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
Define general base for Gaudi exception.
StatusCode execute(const EventContext &) const override final
virtual const std::string & message() const
error message to be printed
constexpr static const auto SUCCESS
StatusCode execute() override final
This class represents an entry point to all the event specific data.
StatusCode execute() override final
StatusCode execute(const EventContext &) const override final
This class is used for returning status codes from appropriate routines.
virtual const StatusCode & code() const
StatusCode for Exception.
Out1 * put(const DataObjectHandle< Out1 > &out_handle, Out2 &&out)
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.