1 #ifndef MERGING_TRANSFORMER_H 2 #define MERGING_TRANSFORMER_H 11 namespace Gaudi {
namespace Functional {
18 template <
typename Out,
typename In,
typename Traits_>
33 virtual Out operator()(const vector_of_const_<In>&
inputs) const = 0;
42 template <typename Out, typename In, typename Traits_>
46 : base_class( name , pSvcLocator,
output )
47 , m_inputLocations( inputs.
second )
56 std::for_each( this->m_inputs.begin(), this->m_inputs.end(), [](
auto&
h) {
h.setOptional(
true); } );
59 p->useUpdateHandler();
62 template <
typename Out,
typename In,
typename Traits_>
66 vector_of_const_<In> ins; ins.reserve(
m_inputs.size());
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.
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)
StatusCode execute() override final
struct GAUDI_API vector
Parametrisation class for vector-like implementation.
class MergingTransformer< Out(const vector_of_const_< In > void
virtual const StatusCode & code() const
StatusCode for Exception.
class MergingTransformer< Out(const vector_of_const_< In > Traits_
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)
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
std::vector< std::string > m_inputLocations
details::InputHandle_t< Traits_, typename std::remove_pointer< T >::type > InputHandle_t
std::vector< InputHandle_t< In > > m_inputs
T back_inserter(T...args)
MergingTransformer(const std::string &name, ISvcLocator *locator, const KeyValues &inputs, const KeyValue &output)
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)