| The Gaudi Framework v32r1 (f65d50dc)

Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true > Struct Template Referenceabstract

`#include <GaudiAlg/MergingTransformer.h>`

Inheritance diagram for Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >:
[legend]
Collaboration diagram for Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >:
[legend]

## Public Types
using | KeyValue = typename base_class::KeyValue
using | KeyValues = typename base_class::KeyValues

## Public Member Functions
| MergingTransformer (const std::string &name, ISvcLocator *locator, const KeyValues &inputs, const KeyValue &output)
const std::string & | inputLocation (unsigned int n) const
unsigned int | inputLocationSize () const
StatusCode | execute () override final
virtual Out | operator() (const vector_of_const_< In > &inputs) const =0

## Private Types
using | base_class = details::DataHandleMixin< std::tuple< Out >, void, Traits_ >
template<typename T >
using | InputHandle_t = details::InputHandle_t< Traits_, std::remove_pointer_t< T > >

## Private Attributes
std::vector< InputHandle_t< In > > | m_inputs
Gaudi::Property< std::vector< std::string > > | m_inputLocations

## Detailed Description

### template<typename Out, typename In, typename Traits_>
struct Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >

Definition at line 23 of file MergingTransformer.h.

## Member Typedef Documentation

## ◆ base_class

template<typename Out , typename In , typename Traits_ >

using Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::base_class = details::DataHandleMixin<std::tuple<Out>, void, Traits_>
| private

Definition at line 26 of file MergingTransformer.h.

## ◆ InputHandle_t

template<typename Out , typename In , typename Traits_ >
template<typename T >

using Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::InputHandle_t = details::InputHandle_t<Traits_, std::remove_pointer_t<T> >
| private

Definition at line 72 of file MergingTransformer.h.

## ◆ KeyValue

template<typename Out , typename In , typename Traits_ >

using Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::KeyValue = typename base_class::KeyValue

Definition at line 29 of file MergingTransformer.h.

## ◆ KeyValues

template<typename Out , typename In , typename Traits_ >

using Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::KeyValues = typename base_class::KeyValues

Definition at line 30 of file MergingTransformer.h.

## Constructor & Destructor Documentation

## ◆ MergingTransformer()

template<typename Out , typename In , typename Traits_ >

Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::MergingTransformer | ( | const std::string & | name,
|  | ISvcLocator * | locator,
|  | const KeyValues & | inputs,
|  | const KeyValue & | output
| ) |  |
| inline

Definition at line 32 of file MergingTransformer.h.

34 : base_class( name, locator, output )
35 , m_inputLocations{this, inputs.first, inputs.second,
36 [=]( Gaudi::Details::PropertyBase& ) {
37 this->m_inputs = details::make_vector_of_handles<decltype( this->m_inputs )>(
38 this, m_inputLocations );
39 if ( std::is_pointer_v<In> ) { // handle constructor does not (yet) allow to set
40 // optional flag... so do it
41 // explicitly here...
42 std::for_each( this->m_inputs.begin(), this->m_inputs.end(),
43 []( auto& h ) { h.setOptional( true ); } );
44 }
45 },
46 Gaudi::Details::Property::ImmediatelyInvokeHandler{true}} {}
gaudiComponentHelp.name
name
Definition: gaudiComponentHelp.py:41
gaudirun.output
output
Definition: gaudirun.py:484
Gaudi::Details::Property::ImmediatelyInvokeHandler
Gaudi::tagged_bool< class ImmediatelyInvokeHandler_tag > ImmediatelyInvokeHandler
Definition: Property.h:141
std::vector::end
T end(T... args)
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::base_class
details::DataHandleMixin< std::tuple< Out >, void, Traits_ > base_class
Definition: MergingTransformer.h:26
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputLocations
Gaudi::Property< std::vector< std::string > > m_inputLocations
Definition: MergingTransformer.h:74
Gaudi::Details::PropertyBase
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: Property.h:32
std::vector::begin
T begin(T... args)
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputs
std::vector< InputHandle_t< In > > m_inputs
Definition: MergingTransformer.h:73
std::for_each
T for_each(T... args)
Gaudi::Functional::details::make_vector_of_handles
Handles make_vector_of_handles(IDataHandleHolder *owner, const std::vector< std::string > &init)
Definition: FunctionalDetails.h:320

## Member Function Documentation

## ◆ execute()

template<typename Out , typename In , typename Traits_ >

StatusCode Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::execute | ( |  | ) |
| inline final override

Definition at line 53 of file MergingTransformer.h.

53 {
54 vector_of_const_<In> ins;
55 ins.reserve( m_inputs.size() );
56 std::transform( m_inputs.begin(), m_inputs.end(), std::back_inserter( ins ),
57 details::details2::get_from_handle<In>{} );
58 try {
59 details::put( std::get<0>( this->m_outputs ), std::as_const( *this )( std::as_const( ins ) ) );
60 return StatusCode::SUCCESS;
61 } catch ( GaudiException& e ) {
62 ( e.code() ? this->warning() : this->error() ) << e.message() << endmsg;
63 return e.code();
64 }
65 }
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:21
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
std::vector::end
T end(T... args)
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:76
std::vector::size
T size(T... args)
std::vector::begin
T begin(T... args)
std::back_inserter
T back_inserter(T... args)
Gaudi::Functional::details::put
Out1 * put(const DataObjectHandle< Out1 > &out_handle, Out2 &&out)
Definition: FunctionalDetails.h:121
std::transform
T transform(T... args)
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputs
std::vector< InputHandle_t< In > > m_inputs
Definition: MergingTransformer.h:73
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ inputLocation()

template<typename Out , typename In , typename Traits_ >

const std::string& Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::inputLocation | ( | unsigned int | n | ) | const
| inline

Definition at line 49 of file MergingTransformer.h.

49 { return m_inputLocations.value()[n]; }
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:210
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputLocations
Gaudi::Property< std::vector< std::string > > m_inputLocations
Definition: MergingTransformer.h:74

## ◆ inputLocationSize()

template<typename Out , typename In , typename Traits_ >

unsigned int Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::inputLocationSize | ( |  | ) | const
| inline

Definition at line 50 of file MergingTransformer.h.

50 { return m_inputLocations.value().size(); }
Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputLocations
Gaudi::Property< std::vector< std::string > > m_inputLocations
Definition: MergingTransformer.h:74

## ◆ operator()()

template<typename Out , typename In , typename Traits_ >

virtual Out Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::operator() | ( | const vector_of_const_< In > & | inputs | ) | const
| pure virtual

## Member Data Documentation

## ◆ m_inputLocations

template<typename Out , typename In , typename Traits_ >

Gaudi::Property<std::vector<std::string> > Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputLocations
| private

Definition at line 74 of file MergingTransformer.h.

## ◆ m_inputs

template<typename Out , typename In , typename Traits_ >

std::vector<InputHandle_t<In> > Gaudi::Functional::details::MergingTransformer< Out(const vector_of_const_< In > &), Traits_, true >::m_inputs
| private

Definition at line 73 of file MergingTransformer.h.

The documentation for this struct was generated from the following file:

- GaudiAlg/GaudiAlg/MergingTransformer.h