The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
details Namespace Reference

Classes

struct  arg_helper
 
struct  arg_helper< Ret(T::*)(Arg) const >
 
class  GenericDataStoreAgent
 
struct  Payload_helper
 
struct  Payload_helper< Gaudi::DataHandle::Reader, Gaudi::NamedRange_< T >, U >
 
struct  Payload_helper< Gaudi::DataHandle::Reader, Gaudi::Range_< T >, U >
 
struct  Payload_helper< Gaudi::DataHandle::Reader, std::optional< Gaudi::NamedRange_< T > >, U >
 
struct  reverse_wrapper
 

Typedefs

template<typename T>
using Converter_t = T ( * )( const DataObject* )
 
template<Gaudi::DataHandle::Mode mode, typename T, typename U = T>
using Payload_t = typename Payload_helper<mode, T, U>::type
 
template<typename T, typename U = T>
using WriteHandle = DataObjectHandle<Payload_t<Gaudi::DataHandle::Writer, T, U>>
 
template<typename T, typename U = T>
using ReadHandle = DataObjectHandle<Payload_t<Gaudi::DataHandle::Reader, T, U>>
 
template<typename lambda>
using argument_t = typename arg_helper<lambda>::type
 

Functions

template<typename T, typename... Args>
constexpr auto size (const T &, Args &&...) noexcept
 
template<typename Range, typename StorageType>
Range make_range (const DataObject *obj)
 
template<typename ValueType, typename Range = Gaudi::Range_<typename ValueType::ConstVector>>
Converter_t< Range > select_range_converter (const DataObject *obj)
 
template<typename T>
bool verifyType (const DataObject *dataObj)
 
std::string replace_all (std::string str, std::string_view from, std::string_view to)
 
template<typename Fun>
auto add_deref (Fun f)
 
template<typename Proj, typename Cmp = std::greater<>>
auto make_cmp (Proj p, Cmp cmp={})
 
template<class T>
std::remove_const_t< T > * nonConst (T *p)
 Cast a pointer to a non const type.
 
template<typename T>
auto begin (reverse_wrapper< T > &w)
 
template<typename T>
auto end (reverse_wrapper< T > &w)
 

Typedef Documentation

◆ argument_t

template<typename lambda>
using details::argument_t = typename arg_helper<lambda>::type

Definition at line 42 of file EventIDBase.h.

◆ Converter_t

template<typename T>
using details::Converter_t = T ( * )( const DataObject* )

Definition at line 26 of file DataObjectHandle.h.

◆ Payload_t

template<Gaudi::DataHandle::Mode mode, typename T, typename U = T>
using details::Payload_t = typename Payload_helper<mode, T, U>::type

Definition at line 90 of file DataObjectHandle.h.

◆ ReadHandle

template<typename T, typename U = T>
using details::ReadHandle = DataObjectHandle<Payload_t<Gaudi::DataHandle::Reader, T, U>>

Definition at line 438 of file DataObjectHandle.h.

◆ WriteHandle

template<typename T, typename U = T>
using details::WriteHandle = DataObjectHandle<Payload_t<Gaudi::DataHandle::Writer, T, U>>

Definition at line 436 of file DataObjectHandle.h.

Function Documentation

◆ add_deref()

template<typename Fun>
auto details::add_deref ( Fun f)

Definition at line 45 of file EventIDBase.h.

45 {
46 return compose( f, [=]( auto*... p ) { return f( *p... ); } );
47 }
auto compose(lambda_ts &&... lambdas)
Definition compose.h:45

◆ begin()

template<typename T>
auto details::begin ( reverse_wrapper< T > & w)

Definition at line 46 of file reverse.h.

46 {
47 using std::rbegin;
48 return rbegin( w.iterable );
49 }

◆ end()

template<typename T>
auto details::end ( reverse_wrapper< T > & w)

Definition at line 51 of file reverse.h.

51 {
52 using std::rend;
53 return rend( w.iterable );
54 }

◆ make_cmp()

template<typename Proj, typename Cmp = std::greater<>>
auto details::make_cmp ( Proj p,
Cmp cmp = {} )

Definition at line 50 of file EventIDBase.h.

50 {} ) {
51 static_assert( std::is_reference_v<argument_t<Proj>>, "must be a reference" );
52 static_assert( std::is_const_v<std::remove_reference_t<argument_t<Proj>>>, "must be const" );
53 return [=]( argument_t<Proj> lhs, argument_t<Proj> rhs ) { return cmp( p( lhs ), p( rhs ) ); };
54 }
typename arg_helper< lambda >::type argument_t
Definition EventIDBase.h:42

◆ make_range()

template<typename Range, typename StorageType>
Range details::make_range ( const DataObject * obj)

Definition at line 29 of file DataObjectHandle.h.

29 {
30 auto c = static_cast<const StorageType*>( obj );
31 if ( !c ) return Range();
32 using std::begin;
33 using std::end;
34 auto first = begin( *c );
35 auto last = end( *c );
36 auto _first = reinterpret_cast<typename Range::const_iterator*>( &first );
37 auto _last = reinterpret_cast<typename Range::const_iterator*>( &last );
38 return Range( *_first, *_last );
39 }
auto begin(reverse_wrapper< T > &w)
Definition reverse.h:46
auto end(reverse_wrapper< T > &w)
Definition reverse.h:51

◆ nonConst()

template<class T>
std::remove_const_t< T > * details::nonConst ( T * p)

Cast a pointer to a non const type.

Definition at line 26 of file GaudiHandle.h.

26 {
27 return const_cast<std::remove_const_t<T>*>( p );
28 }

◆ replace_all()

std::string details::replace_all ( std::string str,
std::string_view from,
std::string_view to )

Definition at line 18 of file ReplaceAll.cpp.

18 {
19 if ( from.empty() ) return str;
20 boost::replace_all( str, from, to );
21 return str;
22 }

◆ select_range_converter()

template<typename ValueType, typename Range = Gaudi::Range_<typename ValueType::ConstVector>>
Converter_t< Range > details::select_range_converter ( const DataObject * obj)

Definition at line 42 of file DataObjectHandle.h.

42 {
43 using Selection = typename ValueType::Selection;
44 auto sel = dynamic_cast<const Selection*>( obj );
46 auto con = dynamic_cast<std::add_const_t<typename ValueType::Container>*>( obj );
48 return nullptr;
49 }
Range make_range(const DataObject *obj)

◆ size()

template<typename T, typename... Args>
auto details::size ( const T & ,
Args && ... )
constexprnoexcept

Definition at line 23 of file AnyDataWrapper.h.

23 {
24 static_assert( sizeof...( Args ) == 0, "No extra args please" );
25 return std::nullopt;
26 }

◆ verifyType()

template<typename T>
bool details::verifyType ( const DataObject * dataObj)

Definition at line 52 of file DataObjectHandle.h.

52 {
53 using Type = std::add_const_t<T>;
54 assert( dataObj != nullptr );
55 auto obj = dynamic_cast<Type*>( dataObj );
56 bool ok = ( obj != nullptr );
57 if ( !ok ) {
58 const auto* registry = dataObj->registry();
59 throw GaudiException( "The type expected for " + registry->identifier() + " is " +
60 System::typeinfoName( typeid( Type ) ) +
61 " and is different from the one of the object in the store which is " +
62 System::typeinfoName( typeid( *dataObj ) ) + ".",
63 "Wrong DataObjectType", StatusCode::FAILURE );
64 }
65 assert( obj == static_cast<Type*>( dataObj ) );
66 return ok;
67 }
IRegistry * registry() const
Get pointer to Registry.
Definition DataObject.h:79
Define general base for Gaudi exception.
constexpr static const auto FAILURE
Definition StatusCode.h:100
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition System.cpp:260