The Gaudi Framework  v36r6 (b1ee9983)
Gaudi::Functional::details::DataHandleMixin< std::tuple<>, 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<>, std::tuple< In... >, Traits_ >:
Collaboration diagram for Gaudi::Functional::details::DataHandleMixin< std::tuple<>, 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)
 
 DataHandleMixin (std::string name, ISvcLocator *locator, const KeyValue &input)
 
constexpr unsigned int inputLocationSize () const
 

Static Public Attributes

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

Protected Member Functions

bool isReEntrant () const override
 

Protected Attributes

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

Private Member Functions

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

Detailed Description

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

Definition at line 612 of file FunctionalDetails.h.

Member Typedef Documentation

◆ KeyValue

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

Definition at line 624 of file FunctionalDetails.h.

◆ KeyValues

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

Definition at line 625 of file FunctionalDetails.h.

Constructor & Destructor Documentation

◆ DataHandleMixin() [1/3]

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

Definition at line 616 of file FunctionalDetails.h.

617  : BaseClass_t<Traits_>( std::move( name ), pSvcLocator )
618  , m_inputs( std::tuple_cat( std::forward_as_tuple( this ), std::get<I>( inputs ) )... ) {
619  // make sure this algorithm is seen as reentrant by Gaudi
620  this->setProperty( "Cardinality", 0 ).ignore();
621  }

◆ DataHandleMixin() [2/3]

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

Definition at line 629 of file FunctionalDetails.h.

630  : DataHandleMixin( std::move( name ), pSvcLocator, inputs, std::index_sequence_for<In...>{} ) {}

◆ DataHandleMixin() [3/3]

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

Definition at line 634 of file FunctionalDetails.h.

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

Member Function Documentation

◆ inputLocationSize()

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

Definition at line 645 of file FunctionalDetails.h.

645 { return N_in; }

◆ isReEntrant()

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

Definition at line 648 of file FunctionalDetails.h.

648 { return true; }

Member Data Documentation

◆ m_inputs

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

Definition at line 650 of file FunctionalDetails.h.

◆ N_in

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

Definition at line 626 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
Gaudi::Functional::details::DataHandleMixin< std::tuple<>, std::tuple< In... >, Traits_ >::m_inputs
std::tuple< details::InputHandle_t< Traits_, In >... > m_inputs
Definition: FunctionalDetails.h:650
std::move
T move(T... args)
Gaudi::Functional::details::DataHandleMixin< std::tuple<>, std::tuple< In... >, Traits_ >::DataHandleMixin
DataHandleMixin(std::string name, ISvcLocator *pSvcLocator, const IArgs &inputs, std::index_sequence< I... >)
Definition: FunctionalDetails.h:616
TimingHistograms.name
name
Definition: TimingHistograms.py:25
std::forward_as_tuple
T forward_as_tuple(T... args)
Gaudi::Functional::Traits::BaseClass_t
Definition: FunctionalUtilities.h:72
std::tuple_cat
T tuple_cat(T... args)
Gaudi::Functional::details::DataHandleMixin< std::tuple<>, std::tuple< In... >, Traits_ >::N_in
constexpr static std::size_t N_in
Definition: FunctionalDetails.h:626