The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base > Class Template Reference

Example of a ConditionAccessorHolder implementation. More...

#include </builds/gaudi/Gaudi/GaudiTestSuite/include/Gaudi/TestSuite/Conditions/ConditionAccessorHolder.h>

Inheritance diagram for Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >:
Collaboration diagram for Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >:

Classes

class  ConditionAccessor
 Class wrapping the communication between condition users and conditions backend. More...

Public Types

using base_class = ConditionAccessorHolder<Base>
 Helper to expose this class to specializations without having to spell the whole name (see Gaudi::TestSuite::Conditions::UserAlg).
using ConditionContext = details::ConditionsStore::ConditionContext
 Forward backend specific ConditionContext to specializations.
using ConditionKey = details::ConditionsStore::ConditionKey
 Forward backend specific ConditionKey to specializations.

Public Member Functions

StatusCode initialize () override
const ConditionContext & getConditionContext (const EventContext &ctx) const
 Helper to map the event being processed to the corresponding conditions slot.

Private Member Functions

template<typename T>
void registerConditionAccessor (ConditionAccessor< T > &accessor)
 Register a ConditionAccessor instance to internal bookkeeping.

Private Attributes

std::list< std::function< void()> > m_delayedRegistrations
 Helper to postpone the registration to the backend.

Friends

template<typename T>
class ConditionAccessor

Detailed Description

template<typename Base>
class Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >

Example of a ConditionAccessorHolder implementation.

Requirements are:

Component classes that require conditions have to inherit from this class, templated with the component base class. E.g.

class MyConditionAlgorithm final : ConditionAccessorHolder<Gaudi::Algorithm> {
// ...
};
Example of a ConditionAccessorHolder implementation.

See Gaudi::TestSuite::Conditions::UserAlg for example.

Definition at line 77 of file ConditionAccessorHolder.h.

Member Typedef Documentation

◆ base_class

template<typename Base>
using Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >::base_class = ConditionAccessorHolder<Base>

Helper to expose this class to specializations without having to spell the whole name (see Gaudi::TestSuite::Conditions::UserAlg).

Definition at line 84 of file ConditionAccessorHolder.h.

◆ ConditionContext

Forward backend specific ConditionContext to specializations.

It is used to refer to a specific conditions slot.

Definition at line 89 of file ConditionAccessorHolder.h.

◆ ConditionKey

Forward backend specific ConditionKey to specializations.

Used to identify a specific condition in a condition slot.

Definition at line 94 of file ConditionAccessorHolder.h.

Member Function Documentation

◆ getConditionContext()

template<typename Base>
const ConditionContext & Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >::getConditionContext ( const EventContext & ctx) const
inline

Helper to map the event being processed to the corresponding conditions slot.

Definition at line 141 of file ConditionAccessorHolder.h.

141 {
143 }
const ConditionContext & getConditionContext(const EventContext &ctx) const
Definition Backend.cpp:26

◆ initialize()

template<typename Base>
StatusCode Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >::initialize ( )
inlineoverride

Definition at line 127 of file ConditionAccessorHolder.h.

127 {
128 auto sc = Base::initialize();
129 if ( !sc ) return sc;
130
131 // backend-specific initialization
132
133 // trigger delayed registrations
134 for ( auto& action : m_delayedRegistrations ) { action(); }
136
137 return sc;
138 }
std::list< std::function< void()> > m_delayedRegistrations
Helper to postpone the registration to the backend.

◆ registerConditionAccessor()

template<typename Base>
template<typename T>
void Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >::registerConditionAccessor ( ConditionAccessor< T > & accessor)
inlineprivate

Register a ConditionAccessor instance to internal bookkeeping.

Definition at line 151 of file ConditionAccessorHolder.h.

151 {
154 } else {
156 }
157 }
void registerConditionAccessor(ConditionAccessor< T > &accessor)
Register a ConditionAccessor instance to internal bookkeeping.

◆ ConditionAccessor

template<typename Base>
template<typename T>
friend class ConditionAccessor
friend

Definition at line 147 of file ConditionAccessorHolder.h.

Member Data Documentation

◆ m_delayedRegistrations

template<typename Base>
std::list<std::function<void()> > Gaudi::TestSuite::Conditions::ConditionAccessorHolder< Base >::m_delayedRegistrations
private

Helper to postpone the registration to the backend.

In Gaudi properties are set during initialize, so, in this example implementation, the registration has to be delayed from construction time to initialization time.

Definition at line 163 of file ConditionAccessorHolder.h.


The documentation for this class was generated from the following file: