The Gaudi Framework  master (594c33fa)
Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ > Struct Template Referenceabstract

#include </builds/gaudi/Gaudi/GaudiFunctional/include/Gaudi/Functional/MergingTransformer.h>

Inheritance diagram for Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >:
Collaboration diagram for Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >:

Public Types

using KeyValue = typename base_class::KeyValue
 
using KeyValues = typename base_class::KeyValues
 
using OutKeys = details::RepeatValues_< KeyValue, sizeof...(Outs)>
 

Public Member Functions

 MergingMultiTransformerFilter (std::string const &name, ISvcLocator *locator, KeyValues const &inputs, OutKeys const &outputs)
 
std::string const & inputLocation (unsigned int n) const
 
unsigned int inputLocationSize () const
 
StatusCode execute (EventContext const &) const override final
 
virtual std::tuple< bool, Outs... > operator() (const vector_of_const_< In > &inputs) const =0
 

Private Types

using base_class = details::DataHandleMixin< std::tuple< Outs... >, std::tuple<>, Traits_ >
 
template<typename T >
using InputHandle_t = details::InputHandle_t< Traits_, typename std::remove_pointer< T >::type >
 

Private Attributes

std::vector< InputHandle_t< In > > m_inputs
 
Gaudi::Property< std::vector< DataObjID > > m_inputLocations
 

Detailed Description

template<typename... Outs, typename In, typename Traits_>
struct Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >

Definition at line 344 of file MergingTransformer.h.

Member Typedef Documentation

◆ base_class

template<typename... Outs, typename In , typename Traits_ >
using Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::base_class = details::DataHandleMixin<std::tuple<Outs...>, std::tuple<>, Traits_>
private

Definition at line 348 of file MergingTransformer.h.

◆ InputHandle_t

template<typename... Outs, typename In , typename Traits_ >
template<typename T >
using Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::InputHandle_t = details::InputHandle_t<Traits_, typename std::remove_pointer<T>::type>
private

Definition at line 394 of file MergingTransformer.h.

◆ KeyValue

template<typename... Outs, typename In , typename Traits_ >
using Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::KeyValue = typename base_class::KeyValue

Definition at line 351 of file MergingTransformer.h.

◆ KeyValues

template<typename... Outs, typename In , typename Traits_ >
using Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::KeyValues = typename base_class::KeyValues

Definition at line 352 of file MergingTransformer.h.

◆ OutKeys

template<typename... Outs, typename In , typename Traits_ >
using Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::OutKeys = details::RepeatValues_<KeyValue, sizeof...( Outs )>

Definition at line 353 of file MergingTransformer.h.

Constructor & Destructor Documentation

◆ MergingMultiTransformerFilter()

template<typename... Outs, typename In , typename Traits_ >
Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::MergingMultiTransformerFilter ( std::string const &  name,
ISvcLocator locator,
KeyValues const &  inputs,
OutKeys const &  outputs 
)

Member Function Documentation

◆ execute()

template<typename... Outs, typename In , typename Traits_ >
StatusCode Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::execute ( EventContext const &  ) const
inlinefinaloverride

Definition at line 363 of file MergingTransformer.h.

363  {
364  vector_of_const_<In> ins;
365  ins.reserve( m_inputs.size() );
367  details::details2::get_from_handle<In>{} );
368  try {
369  return std::apply(
370  [&]( auto&... outhandle ) {
372  return std::apply(
373  [&outhandle...]( bool passed, auto&&... data ) {
374  ( details::put( outhandle, std::forward<decltype( data )>( data ) ), ... );
375  return passed;
376  },
377  ( *this )( std::as_const( ins ) ) );
379  },
380  this->m_outputs )
383  } catch ( GaudiException& e ) {
384  if ( e.code().isFailure() ) this->error() << e.tag() << " : " << e.message() << endmsg;
385  return e.code();
386  }
387  }

◆ inputLocation()

template<typename... Outs, typename In , typename Traits_ >
std::string const& Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::inputLocation ( unsigned int  n) const
inline

Definition at line 359 of file MergingTransformer.h.

359 { return m_inputLocations.value()[n].key(); }

◆ inputLocationSize()

template<typename... Outs, typename In , typename Traits_ >
unsigned int Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::inputLocationSize ( ) const
inline

Definition at line 360 of file MergingTransformer.h.

360 { return m_inputLocations.value().size(); }

◆ operator()()

template<typename... Outs, typename In , typename Traits_ >
virtual std::tuple<bool, Outs...> Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::operator() ( const vector_of_const_< In > &  inputs) const
pure virtual

Member Data Documentation

◆ m_inputLocations

template<typename... Outs, typename In , typename Traits_ >
Gaudi::Property<std::vector<DataObjID> > Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::m_inputLocations
private

Definition at line 396 of file MergingTransformer.h.

◆ m_inputs

template<typename... Outs, typename In , typename Traits_ >
std::vector<InputHandle_t<In> > Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::m_inputs
private

Definition at line 395 of file MergingTransformer.h.


The documentation for this struct was generated from the following file:
Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::m_inputs
std::vector< InputHandle_t< In > > m_inputs
Definition: MergingTransformer.h:395
std::vector::size
T size(T... args)
std::back_inserter
T back_inserter(T... args)
GaudiException
Definition: GaudiException.h:31
Gaudi::Functional::FilterDecision::FAILED
@ FAILED
GF_SUPPRESS_SPURIOUS_CLANG_WARNING_BEGIN
#define GF_SUPPRESS_SPURIOUS_CLANG_WARNING_BEGIN
Definition: details.h:40
GaudiException::message
virtual const std::string & message() const
error message to be printed
Definition: GaudiException.h:68
Gaudi::Property::value
const ValueType & value() const
Definition: Property.h:239
Gaudi::Functional::FilterDecision::PASSED
@ PASSED
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:203
GaudiException::tag
virtual const std::string & tag() const
name tag for the exception, or exception type
Definition: GaudiException.h:77
GF_SUPPRESS_SPURIOUS_CLANG_WARNING_END
#define GF_SUPPRESS_SPURIOUS_CLANG_WARNING_END
Definition: details.h:41
std::transform
T transform(T... args)
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:234
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:86
StatusCode::isFailure
bool isFailure() const
Definition: StatusCode.h:129
std::vector::begin
T begin(T... args)
Gaudi::Functional::MergingMultiTransformerFilter< std::tuple< Outs... >(vector_of_const_< In > const &), Traits_ >::m_inputLocations
Gaudi::Property< std::vector< DataObjID > > m_inputLocations
Definition: MergingTransformer.h:396
std::vector::end
T end(T... args)