| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Private Member Functions | List of all members
Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ > Class Template Referenceabstract

`#include <GaudiAlg/Transformer.h>`

Inheritance diagram for Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >:
[legend]
Collaboration diagram for Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >:
[legend]

## Public Member Functions
StatusCode | execute () override final
virtual std::tuple< Out... > | operator() (const In &...) const =0
Public Member Functions inherited from Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
| DataHandleMixin (const std::string &name, ISvcLocator *pSvcLocator, const std::array< KeyValue, N_in > &inputs, const std::array< KeyValue, N_out > &outputs)
| DataHandleMixin (const std::string &name, ISvcLocator *locator, const KeyValue &input, const KeyValue &output)
| DataHandleMixin (const std::string &name, ISvcLocator *locator, const KeyValue &input, const std::array< KeyValue, N_out > &outputs)
| DataHandleMixin (const std::string &name, ISvcLocator *locator, const std::array< KeyValue, N_in > &inputs, const KeyValue &output)
template<std::size_t N = 0>
const std::string & | inputLocation () const
unsigned int | inputLocationSize () const
template<std::size_t N = 0>
const std::string & | outputLocation () const
unsigned int | outputLocationSize () const

## Private Member Functions
template<std::size_t... I, std::size_t... O>
StatusCode | invoke (std::index_sequence< I... >, std::index_sequence< O... >)

## Additional Inherited Members
Public Types inherited from Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
using | KeyValue = std::pair< std::string, std::string >
Static Public Attributes inherited from Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
static constexpr std::size_t | N_in = sizeof...( In )
static constexpr std::size_t | N_out = sizeof...( Out )
Protected Attributes inherited from Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
std::tuple< details::InputHandle_t< Traits_, In >... > | m_inputs
std::tuple< details::OutputHandle_t< Traits_, Out >... > | m_outputs

## Detailed Description

### template<typename... Out, typename... In, typename Traits_>
class Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >

Definition at line 62 of file Transformer.h.

## Member Function Documentation

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

StatusCode Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >::execute | ( |  | ) |
| inline final override

Definition at line 69 of file Transformer.h.

70 {
71 return invoke( std::index_sequence_for<In...>{}, std::index_sequence_for<Out...>{} );
72 }
Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >::invoke
StatusCode invoke(std::index_sequence< I... >, std::index_sequence< O... >)
Definition: Transformer.h:79
template<typename... Out, typename... In, typename Traits_ >
template<std::size_t... I, std::size_t... O>

StatusCode Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >::invoke | ( | std::index_sequence< I... > | ,
|  | std::index_sequence< O... > |
| ) |  |
| inline private

Definition at line 79 of file Transformer.h.

80 {
81 using details::as_const;
82 using details::put;
83 try {
84 auto out = as_const( *this )( as_const( *std::get<I>( this->m_inputs ).get() )... );
85 (void)std::initializer_list<int>{
86 ( put( std::get<O>( this->m_outputs ), std::move( std::get<O>( out ) ) ), 0 )...};
87 } catch ( GaudiException& e ) {
88 ( e.code() ? this->warning() : this->error() ) << e.message() << endmsg;
89 return e.code();
90 }
91 return StatusCode::SUCCESS;
92 }
StatusCode::SUCCESS
Definition: StatusCode.h:29
GaudiException
Define general base for Gaudi exception.
Definition: GaudiException.h:22
Gaudi::Functional::void
class MergingTransformer< Out(const vector_of_const_< In > void
Definition: MergingTransformer.h:23
GaudiException::code
virtual const StatusCode & code() const
StatusCode for Exception.
Definition: GaudiException.h:119
std::move
T move(T...args)
Gaudi::Functional::details::as_const
constexpr std::add_const_t< T > & as_const(T &t) noexcept
Definition: FunctionalDetails.h:104
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::m_inputs
std::tuple< details::InputHandle_t< Traits_, In >... > m_inputs
Definition: FunctionalDetails.h:493
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::m_outputs
std::tuple< details::OutputHandle_t< Traits_, Out >... > m_outputs
Definition: FunctionalDetails.h:494
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
std::initializer_list
Gaudi::Functional::details::put
Out1 * put(DataObjectHandle< Out1 > &out_handle, Out2 &&out)
Definition: FunctionalDetails.h:115
template<typename... Out, typename... In, typename Traits_ >

virtual std::tuple<Out...> Gaudi::Functional::MultiTransformer< std::tuple< Out... >(const In &...), Traits_ >::operator() | ( | const In & | ... | ) | const
| pure virtual

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

- GaudiAlg/GaudiAlg/Transformer.h