1 #ifndef SPLITTING_TRANSFORMER_H 2 #define SPLITTING_TRANSFORMER_H 14 template <
typename Container>
16 template <
typename Container>
21 template <
typename Signature,
typename Traits_,
bool isLegacy>
25 template <
typename Out,
typename... In,
typename Traits_>
39 this, outputs.first, outputs.
second,
40 [=](
Gaudi::Details::PropertyBase& ) {
43 if constexpr ( details::is_optional_v<Out> ) {
46 std::for_each( this->m_outputs.begin(), this->m_outputs.end(),
47 [](
auto& h ) { h.setOptional(
true ); } );
55 static_assert( N == 1,
"single input argument requires single input signature" );
67 if ( out.size() != m_outputs.size() ) {
93 template <
typename Out,
typename... In,
typename Traits_>
107 this, outputs.first, outputs.
second,
108 [=](
Gaudi::Details::PropertyBase& ) {
111 if constexpr ( details::is_optional_v<Out> ) {
114 std::for_each( this->m_outputs.begin(), this->m_outputs.end(),
115 [](
auto& h ) { h.setOptional(
true ); } );
123 static_assert( N == 1,
"single input argument requires single input signature" );
135 if ( out.size() != m_outputs.size() ) {
154 template <
typename T>
163 template <
typename Signature,
typename Traits_ = Traits::useDefaults>
virtual const std::string & message() const
error message to be printed
Define general base for Gaudi exception.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
virtual Out operator()(const vector_of_const_< In > &inputs) const =0
Implementation of property with value of concrete type.
typename base_class::KeyValue KeyValue
typename base_class::KeyValues KeyValues
Gaudi::tagged_bool< class ImmediatelyInvokeHandler_tag > ImmediatelyInvokeHandler
constexpr static const auto SUCCESS
This class represents an entry point to all the event specific data.
virtual const StatusCode & code() const
StatusCode for Exception.
std::vector< InputHandle_t< In > > m_inputs
class MergingTransformer< Out(const vector_of_const_< In > Traits_
This class is used for returning status codes from appropriate routines.
static auto apply(const Algorithm &algo, Handles &handles)
details::template vector_of_const_< Container > vector_of_
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
Gaudi::cpp17::detected_or_t< DataObjectWriteHandle< T >, detail2::OutputHandle_t, Tr, T > OutputHandle_t
Out1 * put(const DataObjectHandle< Out1 > &out_handle, Out2 &&out)
class MergingTransformer< Out(const vector_of_const_< In > void
constexpr static const auto FAILURE
Handles make_vector_of_handles(IDataHandleHolder *owner, const std::vector< std::string > &init)
Header file for std:chrono::duration-based Counters.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.