The Gaudi Framework  v36r6 (b1ee9983)
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ > Class Template Reference

#include </builds/gaudi/Gaudi/GaudiAlg/include/GaudiAlg/FunctionalDetails.h>

Inheritance diagram for Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >:
Collaboration diagram for Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >:

Public Types

using KeyValue = std::pair< std::string, std::string >
 
using KeyValues = std::pair< std::string, std::vector< std::string > >
 

Public Member Functions

 DataHandleMixin (std::string name, ISvcLocator *pSvcLocator, RepeatValues_< KeyValue, N_in > const &inputs, RepeatValues_< KeyValue, N_out > const &outputs)
 
 DataHandleMixin (std::string name, ISvcLocator *locator, const KeyValue &input, const KeyValue &output)
 
 DataHandleMixin (std::string name, ISvcLocator *locator, const KeyValue &input, RepeatValues_< KeyValue, N_out > const &outputs)
 
 DataHandleMixin (std::string name, ISvcLocator *locator, RepeatValues_< KeyValue, N_in > const &inputs, const KeyValue &output)
 
constexpr unsigned int inputLocationSize () const
 
constexpr unsigned int outputLocationSize () const
 

Static Public Attributes

constexpr static std::size_t N_in = sizeof...( In )
 
constexpr static std::size_t N_out = sizeof...( Out )
 

Protected Member Functions

bool isReEntrant () const override
 

Protected Attributes

std::tuple< details::InputHandle_t< Traits_, In >... > m_inputs
 
std::tuple< details::OutputHandle_t< Traits_, Out >... > m_outputs
 

Private Member Functions

template<typename IArgs , typename OArgs , std::size_t... I, std::size_t... J>
 DataHandleMixin (std::string name, ISvcLocator *pSvcLocator, const IArgs &inputs, std::index_sequence< I... >, const OArgs &outputs, std::index_sequence< J... >)
 

Detailed Description

template<typename... Out, typename... In, typename Traits_>
class Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >

Definition at line 525 of file FunctionalDetails.h.

Member Typedef Documentation

◆ KeyValue

template<typename... Out, typename... In, typename Traits_ >
using Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::KeyValue = std::pair<std::string, std::string>

Definition at line 542 of file FunctionalDetails.h.

◆ KeyValues

template<typename... Out, typename... In, typename Traits_ >
using Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::KeyValues = std::pair<std::string, std::vector<std::string> >

Definition at line 543 of file FunctionalDetails.h.

Constructor & Destructor Documentation

◆ DataHandleMixin() [1/5]

template<typename... Out, typename... In, typename Traits_ >
template<typename IArgs , typename OArgs , std::size_t... I, std::size_t... J>
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin ( std::string  name,
ISvcLocator pSvcLocator,
const IArgs &  inputs,
std::index_sequence< I... >  ,
const OArgs &  outputs,
std::index_sequence< J... >   
)
inlineprivate

Definition at line 529 of file FunctionalDetails.h.

531  : BaseClass_t<Traits_>( std::move( name ), pSvcLocator )
532  , m_inputs( std::tuple_cat( std::forward_as_tuple( this ), std::get<I>( inputs ) )... )
533  , m_outputs( std::tuple_cat( std::forward_as_tuple( this ), std::get<J>( outputs ) )... ) {
534  // make sure this algorithm is seen as reentrant by Gaudi
535  this->setProperty( "Cardinality", 0 ).ignore();
536  }

◆ DataHandleMixin() [2/5]

template<typename... Out, typename... In, typename Traits_ >
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin ( std::string  name,
ISvcLocator pSvcLocator,
RepeatValues_< KeyValue, N_in > const &  inputs,
RepeatValues_< KeyValue, N_out > const &  outputs 
)
inline

Definition at line 546 of file FunctionalDetails.h.

548  : DataHandleMixin( std::move( name ), pSvcLocator, inputs, std::index_sequence_for<In...>{}, outputs,
549  std::index_sequence_for<Out...>{} ) {}

◆ DataHandleMixin() [3/5]

template<typename... Out, typename... In, typename Traits_ >
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin ( std::string  name,
ISvcLocator locator,
const KeyValue input,
const KeyValue output 
)
inline

Definition at line 553 of file FunctionalDetails.h.

554  : DataHandleMixin( std::move( name ), locator, std::forward_as_tuple( input ),

◆ DataHandleMixin() [4/5]

template<typename... Out, typename... In, typename Traits_ >
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin ( std::string  name,
ISvcLocator locator,
const KeyValue input,
RepeatValues_< KeyValue, N_out > const &  outputs 
)
inline

Definition at line 557 of file FunctionalDetails.h.

559  : DataHandleMixin( std::move( name ), locator, std::forward_as_tuple( input ), outputs ) {}

◆ DataHandleMixin() [5/5]

template<typename... Out, typename... In, typename Traits_ >
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin ( std::string  name,
ISvcLocator locator,
RepeatValues_< KeyValue, N_in > const &  inputs,
const KeyValue output 
)
inline

Definition at line 561 of file FunctionalDetails.h.

563  : DataHandleMixin( std::move( name ), locator, inputs, std::forward_as_tuple( output ) ) {}

Member Function Documentation

◆ inputLocationSize()

template<typename... Out, typename... In, typename Traits_ >
constexpr unsigned int Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::inputLocationSize ( ) const
inlineconstexpr

Definition at line 573 of file FunctionalDetails.h.

573 { return N_in; }

◆ isReEntrant()

template<typename... Out, typename... In, typename Traits_ >
bool Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::isReEntrant ( ) const
inlineoverrideprotected

Definition at line 586 of file FunctionalDetails.h.

586 { return true; }

◆ outputLocationSize()

template<typename... Out, typename... In, typename Traits_ >
constexpr unsigned int Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::outputLocationSize ( ) const
inlineconstexpr

Definition at line 583 of file FunctionalDetails.h.

583 { return N_out; }

Member Data Documentation

◆ m_inputs

template<typename... Out, typename... In, typename Traits_ >
std::tuple<details::InputHandle_t<Traits_, In>...> Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::m_inputs
protected

Definition at line 588 of file FunctionalDetails.h.

◆ m_outputs

template<typename... Out, typename... In, typename Traits_ >
std::tuple<details::OutputHandle_t<Traits_, Out>...> Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::m_outputs
protected

Definition at line 589 of file FunctionalDetails.h.

◆ N_in

template<typename... Out, typename... In, typename Traits_ >
constexpr static std::size_t Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::N_in = sizeof...( In )
staticconstexpr

Definition at line 539 of file FunctionalDetails.h.

◆ N_out

template<typename... Out, typename... In, typename Traits_ >
constexpr static std::size_t Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::N_out = sizeof...( Out )
staticconstexpr

Definition at line 540 of file FunctionalDetails.h.


The documentation for this class was generated from the following file:
setProperty
bool PyHelper() setProperty(IInterface *p, char *name, char *value)
Definition: Bootstrap.cpp:242
std::move
T move(T... args)
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:588
gaudirun.output
output
Definition: gaudirun.py:521
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::DataHandleMixin
DataHandleMixin(std::string name, ISvcLocator *pSvcLocator, const IArgs &inputs, std::index_sequence< I... >, const OArgs &outputs, std::index_sequence< J... >)
Definition: FunctionalDetails.h:529
TimingHistograms.name
name
Definition: TimingHistograms.py:25
std::forward_as_tuple
T forward_as_tuple(T... args)
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:589
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::N_out
constexpr static std::size_t N_out
Definition: FunctionalDetails.h:540
Gaudi::Functional::Traits::BaseClass_t
Definition: FunctionalUtilities.h:72
std::tuple_cat
T tuple_cat(T... args)
Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >::N_in
constexpr static std::size_t N_in
Definition: FunctionalDetails.h:539