| The Gaudi Framework v30r0 (c919700c)

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

- Namespace List
- Namespace Members

Namespaces | Classes | Typedefs | Functions | Variables
Gaudi::Functional::details Namespace Reference

## Namespaces
| detail2
| details2
| zip

## Classes
class | DataHandleMixin
class | DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
class | DataHandleMixin< std::tuple< Out... >, void, Traits_ >
class | DataHandleMixin< void, std::tuple< In... >, Traits_ >
struct | deref_t
struct | insert_t
struct | is_optional
struct | is_optional< boost::optional< T > >
class | vector_of_const_

## Typedefs
template<typename T >
using | remove_optional_t = typename details2::remove_optional< T >::type
template<typename Default , template< typename... > class Op, typename... Args>
using | detected_or_t = typename detail2::detector< Default, void, Op, Args... >::type
template<template< typename... > class Default, template< typename... > class Op, typename Tr , typename T >
using | detected_or_t_ = detected_or_t< Default< Tr, T >, Op, Tr, T >
template<typename Tr >
using | BaseClass_t = detected_or_t< GaudiAlgorithm, detail2::BaseClass_, Tr >
template<typename Tr , typename T >
using | OutputHandle_t = detected_or_t_< detail2::defaultHandle_, detail2::OutputHandle_, Tr, T >
template<typename Tr , typename T >
using | InputHandle_t = detected_or_t_< detail2::defaultHandle_, detail2::InputHandle_, Tr, T >

## Functions
template<typename T >
constexpr std::add_const_t< T > & | as_const (T &t) noexcept
template<typename T >
void | as_const (T &&t)=delete
template<typename Out1 , typename Out2 , typename = std::enable_if_t<std::is_constructible<Out1, Out2>::value>>
Out1 * | put (DataObjectHandle< Out1 > &out_handle, Out2 &&out)
template<typename Out1 , typename Out2 , typename = std::enable_if_t<std::is_constructible<Out1, Out2>::value>>
void | put (AnyDataHandle< Out1 > &out_handle, Out2 &&out)
template<typename OutHandle , typename Out >
void | put (OutHandle &out_handle, boost::optional< Out > &&out)
template<typename Tuple , typename KeyValues >
Tuple | make_tuple_of_handles (IDataHandleHolder *owner, const KeyValues &initvalue, Gaudi::DataHandle::Mode mode)
template<typename KeyValues , typename Properties >
void | declare_tuple_of_properties (Algorithm &owner, const KeyValues &inputs, Properties &props)
template<typename Handles >
Handles | make_vector_of_handles (IDataHandleHolder *owner, const std::vector< std::string > &init, Gaudi::DataHandle::Mode mode)
template<typename Fun , typename Container , typename... Args>
constexpr void | applyPostProcessing (const Fun &, Container &, Args...)
template<typename Fun , typename Container >
auto | applyPostProcessing (const Fun &fun, Container &c) -> decltype(fun.postprocess(c), void())

## Variables
constexpr struct Gaudi::Functional::details::insert_t | insert
constexpr struct Gaudi::Functional::details::deref_t | deref

## Typedef Documentation

template<typename Tr >

using Gaudi::Functional::details::BaseClass_t = typedef detected_or_t<GaudiAlgorithm, detail2::BaseClass_, Tr>

Definition at line 372 of file FunctionalDetails.h.

template<typename Default , template< typename... > class Op, typename... Args>

using Gaudi::Functional::details::detected_or_t = typedef typename detail2::detector<Default, void, Op, Args...>::type

Definition at line 347 of file FunctionalDetails.h.

template<template< typename... > class Default, template< typename... > class Op, typename Tr , typename T >

using Gaudi::Functional::details::detected_or_t_ = typedef detected_or_t<Default<Tr, T>, Op, Tr, T>

Definition at line 351 of file FunctionalDetails.h.

template<typename Tr , typename T >

using Gaudi::Functional::details::InputHandle_t = typedef detected_or_t_<detail2::defaultHandle_, detail2::InputHandle_, Tr, T>

Definition at line 381 of file FunctionalDetails.h.

template<typename Tr , typename T >

using Gaudi::Functional::details::OutputHandle_t = typedef detected_or_t_<detail2::defaultHandle_, detail2::OutputHandle_, Tr, T>

Definition at line 379 of file FunctionalDetails.h.

template<typename T >

using Gaudi::Functional::details::remove_optional_t = typedef typename details2::remove_optional<T>::type

Definition at line 201 of file FunctionalDetails.h.

## Function Documentation

template<typename Fun , typename Container , typename... Args>

constexpr void Gaudi::Functional::details::applyPostProcessing | ( | const Fun & | ,
|  | Container & | ,
|  | Args... |
| ) |  |

Definition at line 574 of file FunctionalDetails.h.

575 {
576 static_assert( sizeof...( Args ) == 0, "Args should not be used!" );
577 }
template<typename Fun , typename Container >

auto Gaudi::Functional::details::applyPostProcessing | ( | const Fun & | fun,
|  | Container & | c
| ) |  | -> decltype( fun.postprocess( c ), void() )

Definition at line 580 of file FunctionalDetails.h.

581 {
582 fun.postprocess( c );
583 }
gaudirun.c
c
Definition: gaudirun.py:407
fun
double fun(const std::vector< double > &x)
Definition: PFuncTest.cpp:26
template<typename T >

constexpr std::add_const_t<T>& Gaudi::Functional::details::as_const | ( | T & | t | ) |
| noexcept

Definition at line 104 of file FunctionalDetails.h.

105 {
106 return t;
107 }
template<typename T >

void Gaudi::Functional::details::as_const | ( | T && | t | ) |
| delete

template<typename KeyValues , typename Properties >

void Gaudi::Functional::details::declare_tuple_of_properties | ( | Algorithm & | owner,
|  | const KeyValues & | inputs,
|  | Properties & | props
| ) |  |

Definition at line 410 of file FunctionalDetails.h.

411 {
412 constexpr auto N = std::tuple_size<KeyValues>::value;
413 static_assert( N == std::tuple_size<Properties>::value, "Inconsistent lengths" );
414 details2::declare_tuple_of_properties_helper( owner, inputs, props, std::make_index_sequence<N>{} );
415 }
Gaudi::Functional::details::details2::declare_tuple_of_properties_helper
void declare_tuple_of_properties_helper(Algorithm &owner, const KeyValues &inputs, Properties &props, std::index_sequence< I... >)
Definition: FunctionalDetails.h:394
IOTest.N
int N
Definition: IOTest.py:101
template<typename Tuple , typename KeyValues >

Tuple Gaudi::Functional::details::make_tuple_of_handles | ( | IDataHandleHolder * | owner,
|  | const KeyValues & | initvalue,
|  | Gaudi::DataHandle::Mode | mode
| ) |  |

Definition at line 403 of file FunctionalDetails.h.

404 {
405 return details2::make_tuple_of_handles_helper<Tuple>(
406 owner, initvalue, mode, std::make_index_sequence<std::tuple_size<Tuple>::value>{} );
407 }
template<typename Handles >

Handles Gaudi::Functional::details::make_vector_of_handles | ( | IDataHandleHolder * | owner,
|  | const std::vector< std::string > & | init,
|  | Gaudi::DataHandle::Mode | mode
| ) |  |

Definition at line 418 of file FunctionalDetails.h.

420 {
421 Handles handles;
422 handles.reserve( init.size() );
423 std::transform( init.begin(), init.end(), std::back_inserter( handles ),
424 [&]( const std::string& loc ) -> typename Handles::value_type {
425 return {loc, mode, owner};
426 } );
427 return handles;
428 }
std::vector::end
T end(T...args)
std::string
STL class.
std::vector::size
T size(T...args)
std::vector::begin
T begin(T...args)
std::back_inserter
T back_inserter(T...args)
std::transform
T transform(T...args)
template<typename Out1 , typename Out2 , typename = std::enable_if_t<std::is_constructible<Out1, Out2>::value>>

Out1* Gaudi::Functional::details::put | ( | DataObjectHandle< Out1 > & | out_handle,
|  | Out2 && | out
| ) |  |

Definition at line 115 of file FunctionalDetails.h.

116 {
117 return out_handle.put( new Out1( std::forward<Out2>( out ) ) );
118 }
DataObjectHandle::put
T * put(T *object)
Register object in transient store.
Definition: DataObjectHandle.h:154
template<typename Out1 , typename Out2 , typename = std::enable_if_t<std::is_constructible<Out1, Out2>::value>>

void Gaudi::Functional::details::put | ( | AnyDataHandle< Out1 > & | out_handle,
|  | Out2 && | out
| ) |  |

Definition at line 121 of file FunctionalDetails.h.

122 {
123 out_handle.put( std::forward<Out2>( out ) );
124 }
AnyDataHandle::put
const T * put(T &&object)
Register object in transient store.
Definition: AnyDataHandle.h:41
template<typename OutHandle , typename Out >

void Gaudi::Functional::details::put | ( | OutHandle & | out_handle,
|  | boost::optional< Out > && | out
| ) |  |

Definition at line 128 of file FunctionalDetails.h.

129 {
130 if ( out ) put( out_handle, std::move( *out ) );
131 }
std::move
T move(T...args)
Gaudi::Functional::details::put
void put(OutHandle &out_handle, boost::optional< Out > &&out)
Definition: FunctionalDetails.h:128

## Variable Documentation

constexpr struct Gaudi::Functional::details::deref_t Gaudi::Functional::details::deref

constexpr struct Gaudi::Functional::details::insert_t Gaudi::Functional::details::insert