The Gaudi Framework  master (b9786168)
Loading...
Searching...
No Matches
details.h File Reference
#include <Gaudi/Algorithm.h>
#include <GaudiKernel/Algorithm.h>
#include <GaudiKernel/DataObjectHandle.h>
#include <GaudiKernel/GaudiException.h>
#include <GaudiKernel/IBinder.h>
#include <GaudiKernel/ThreadLocalContext.h>
#include <cassert>
#include <sstream>
#include <type_traits>
#include <range/v3/view/const.hpp>
#include <range/v3/view/zip.hpp>
Include dependency graph for details.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Gaudi::Functional::details::details2::value_type_of< T >
 
struct  Gaudi::Functional::details::details2::value_type_of< T >
 
struct  Gaudi::Functional::details::invoke_optionally_t
 
struct  Gaudi::Functional::details::insert_t
 
struct  Gaudi::Functional::details::deref_t
 
struct  Gaudi::Functional::details::details2::get_from_handle< In >
 
class  Gaudi::Functional::details::details2::indirect_iterator< Iterator >
 
class  Gaudi::Functional::details::vector_of_const_< Container >
 
struct  Gaudi::Functional::details::detail2::BaseClass< Tr, Default >
 
struct  Gaudi::Functional::details::detail2::BaseClass< Tr, Default >
 
struct  Gaudi::Functional::details::detail2::OutputHandle< T, Tr, Default >
 
struct  Gaudi::Functional::details::detail2::OutputHandle< T, Tr, Default >
 
struct  Gaudi::Functional::details::detail2::InputHandle< T, Tr, Default >
 
struct  Gaudi::Functional::details::detail2::InputHandle< T, Tr, Default >
 
struct  Gaudi::Functional::details::filter_evtcontext_t< In >
 
struct  Gaudi::Functional::details::filter_evtcontext_t< EventContext, In... >
 
class  Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple< In... >, Traits_ >
 
class  Gaudi::Functional::details::DataHandleMixin< std::tuple<>, std::tuple<>, Traits_ >
 
class  Gaudi::Functional::details::DataHandleMixin< std::tuple<>, std::tuple< In... >, Traits_ >
 
class  Gaudi::Functional::details::DataHandleMixin< std::tuple< void >, std::tuple<>, Traits_ >
 
class  Gaudi::Functional::details::DataHandleMixin< std::tuple< Out... >, std::tuple<>, Traits_ >
 

Namespaces

namespace  Gaudi
 This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from python with a format liks : ( nbins, min, max, title ) where title can be ommited.
 
namespace  Gaudi::Functional
 
namespace  Gaudi::Functional::details
 
namespace  Gaudi::Functional::details::zip
 
namespace  Gaudi::Functional::details::details2
 
namespace  Gaudi::Functional::details::detail2
 

Concepts

concept  Gaudi::Functional::details::is_optional
 

Typedefs

template<typename T>
using Gaudi::Functional::details::remove_optional_t = typename details2::value_type_of<T>::type
 
template<typename Value, auto N>
using Gaudi::Functional::details::RepeatValues_ = decltype( get_values_helper<Value>( std::make_index_sequence<N>() ) )
 
template<typename Tr>
using Gaudi::Functional::details::detail2::BaseClass_t = typename Tr::BaseClass
 
template<typename T>
using Gaudi::Functional::details::detail2::DefaultInputHandle
 
template<typename Tr, typename Default = Gaudi::Algorithm>
using Gaudi::Functional::details::BaseClass_t = detail2::BaseClass<Tr, Default>::type
 
template<typename Tr, typename T>
using Gaudi::Functional::details::OutputHandle_t = typename detail2::OutputHandle<T, Tr, DataObjectWriteHandle>::type
 
template<typename Tr, typename T>
using Gaudi::Functional::details::InputHandle_t = typename detail2::InputHandle<T, Tr, detail2::DefaultInputHandle>::type
 
template<typename... In>
using Gaudi::Functional::details::filter_evtcontext = typename filter_evtcontext_t<In...>::type
 

Functions

template<typename OS, typename Arg>
void Gaudi::Functional::details::zip::printSizes (OS &out, Arg &&arg)
 Print the parameter.
 
template<typename OS, typename Arg, typename... Args>
void Gaudi::Functional::details::zip::printSizes (OS &out, Arg &&arg, Args &&... args)
 Print the parameters.
 
template<typename A>
bool Gaudi::Functional::details::zip::check_sizes (const A &) noexcept
 Resolve case there is only one container in the range.
 
template<typename A, typename B>
bool Gaudi::Functional::details::zip::check_sizes (const A &a, const B &b) noexcept
 Compare sizes of two containers.
 
template<typename A, typename B, typename... C>
bool Gaudi::Functional::details::zip::check_sizes (const A &a, const B &b, const C &... c) noexcept
 Compare sizes of 3 or more containers.
 
template<typename... Args>
decltype(auto) Gaudi::Functional::details::zip::verifySizes (Args &... args)
 Verify the data container sizes have the same sizes.
 
template<typename... Args>
decltype(auto) Gaudi::Functional::details::zip::range (Args &&... args)
 Zips multiple containers together to form a single range.
 
template<typename... Args>
decltype(auto) Gaudi::Functional::details::zip::const_range (Args &&... args)
 Zips multiple containers together to form a single const range.
 
std::vector< DataObjIDGaudi::Functional::details::to_DataObjID (const std::vector< std::string > &in)
 
template<typename Value, std::size_t... I>
auto Gaudi::Functional::details::get_values_helper (std::index_sequence< I... >)
 
template<std::derived_from< DataObject > Out1, std::convertible_to< Out1 > Out2>
auto Gaudi::Functional::details::put (const DataObjectHandle< Out1 > &out_handle, Out2 &&out)
 
template<typename Out1, std::convertible_to< Out1 > Out2>
auto Gaudi::Functional::details::put (const DataObjectHandle< AnyDataWrapper< Out1 > > &out_handle, Out2 &&out)
 
template<typename OutHandle, typename OptOut>
requires ( is_optional<OptOut> )
void Gaudi::Functional::details::put (const OutHandle &out_handle, OptOut &&out)
 
template<typename Handles>
Handles Gaudi::Functional::details::make_vector_of_handles (IDataHandleHolder *owner, const std::vector< DataObjID > &init)
 
template<typename Handle, typename Algo>
auto Gaudi::Functional::details::get (const Handle &handle, const Algo &, const EventContext &) -> decltype(details::deref(handle.get()))
 
template<typename IFace, typename Algo>
auto Gaudi::Functional::details::get (const ToolHandle< Gaudi::Interface::Bind::IBinder< IFace > > &handle, const Algo &, const EventContext &ctx)
 
template<typename Handle>
auto Gaudi::Functional::details::getKey (const Handle &h) -> decltype(h.objKey())
 
template<typename Out, typename In, typename Tr>
void Gaudi::Functional::details::updateHandleLocation (DataHandleMixin< Out, In, Tr > &parent, const std::string &prop, const std::string &newLoc)
 
template<typename Out, typename In, typename Tr>
void Gaudi::Functional::details::updateHandleLocations (DataHandleMixin< Out, In, Tr > &parent, const std::string &prop, const std::vector< std::string > &newLocs)
 
template<typename Fun, typename Container, typename... Args>
constexpr void Gaudi::Functional::details::applyPostProcessing (const Fun &, Container &, Args...)
 
template<typename Fun, typename Container>
auto Gaudi::Functional::details::applyPostProcessing (const Fun &fun, Container &c) -> decltype(fun.postprocess(c), void())
 

Variables

constexpr struct Gaudi::Functional::details::invoke_optionally_t Gaudi::Functional::details::invoke_optionally
 
constexpr struct Gaudi::Functional::details::insert_t Gaudi::Functional::details::insert
 
constexpr struct Gaudi::Functional::details::deref_t Gaudi::Functional::details::deref
 
template<typename Traits>
constexpr bool Gaudi::Functional::details::isLegacy