1 #ifndef SPLITTING_TRANSFORMER_H 2 #define SPLITTING_TRANSFORMER_H 16 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
19 template <
typename Container>
21 template <
typename Container>
25 template <
typename Out,
typename... In,
typename Traits_>
43 static_assert( N == 1,
"single input argument requires single input signature" );
66 if ( out.size() != m_outputs.size() ) {
84 template <
typename Out,
typename... In,
typename Traits_>
88 :
base_class( name, pSvcLocator, inputs ), m_outputLocations( outputs.
second )
96 std::for_each( this->m_outputs.begin(), this->m_outputs.end(), [](
auto&
h ) {
h.setOptional(
true ); } );
99 p->useUpdateHandler();
virtual const std::string & message() const
error message to be printed
constexpr std::add_const< T >::type & as_const(T &t) noexcept
detected_or_t_< detail2::defaultHandle_, detail2::OutputHandle_, Tr, T > OutputHandle_t
Define general base for Gaudi exception.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Handles make_vector_of_handles(IDataHandleHolder *owner, const std::vector< std::string > &init, Gaudi::DataHandle::Mode mode)
class MergingTransformer< Out(const vector_of_const_< In > void
virtual const StatusCode & code() const
StatusCode for Exception.
This class is used for returning status codes from appropriate routines.
Gaudi::Details::PropertyBase * declareProperty(const std::string &name, TYPE &value, const std::string &doc="none")
Declare a property (templated)
details::template vector_of_const_< Container > vector_of_
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
std::vector< InputHandle_t< In > > m_inputs
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
virtual Out operator()(const vector_of_const_< In > &inputs) const =0
struct[[deprecated("use MergingTransformer instead")]] Traits_
auto invoke(F &&f, ArgTypes &&...args) noexcept(noexcept(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))) -> decltype(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))
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)