ATLAS Offline Software
Loading...
Searching...
No Matches
Athena::CondObjDeleter< T > Class Template Reference

Deletion object for conditions payloads. More...

#include <CondObjDeleter.h>

Inheritance diagram for Athena::CondObjDeleter< T >:
Collaboration diagram for Athena::CondObjDeleter< T >:

Public Types

typedef void delete_function(const void *)
 Type of a function to delete a payload object immediately.

Public Member Functions

 CondObjDeleter (Athena::IRCUSvc &rcusvc)
 Constructor.
virtual void discard (const void *p) override
 Queue an object for deletion.
virtual void quiescent (const EventContext &ctx) override
 Mark a slot as quiescent.
delete_functiondelfcn () const
 Return a function to delete a payload object immediately.

Static Private Member Functions

static void delPayload (const void *p)
 Function to delete a payload object immediately.

Private Attributes

Athena::RCUObject< T > m_obj
 Lifetime manager for discarded objects.
delete_functionm_delfcn
 Immediate deletion function.

Detailed Description

template<class T>
class Athena::CondObjDeleter< T >

Deletion object for conditions payloads.

This class implements the IRangeMapPayloadDeleter interface for conditions objects.

The underlying ConcurrentRangeMap objects hold the payload objects as void*'s, so that's the type we use in the IRangeMapPayloadDeleter template. The parameter T is the actual type of the payload objects.

We use RCUObject to manage the lifetime of the deleted objects.

Definition at line 39 of file CondObjDeleter.h.

Member Typedef Documentation

◆ delete_function

typedef void CxxUtils::IRangeMapPayloadDeleter< void, EventContext >::delete_function(const void *)
inherited

Type of a function to delete a payload object immediately.

Definition at line 47 of file ConcurrentRangeMap.h.

Constructor & Destructor Documentation

◆ CondObjDeleter()

template<class T>
Athena::CondObjDeleter< T >::CondObjDeleter ( Athena::IRCUSvc & rcusvc)

Constructor.

Parameters
rcusvcService with which to register.

Member Function Documentation

◆ delfcn()

delete_function * CxxUtils::IRangeMapPayloadDeleter< void, EventContext >::delfcn ( ) const
inherited

Return a function to delete a payload object immediately.

◆ delPayload()

template<class T>
void Athena::CondObjDeleter< T >::delPayload ( const void * p)
staticprivate

Function to delete a payload object immediately.

◆ discard()

template<class T>
virtual void Athena::CondObjDeleter< T >::discard ( const void * p)
overridevirtual

Queue an object for deletion.

Parameters
pThe object to delete.

The object should not actually be deleted until quiescent has been called for each active slot.

Implements CxxUtils::IRangeMapPayloadDeleter< void, EventContext >.

◆ quiescent()

template<class T>
virtual void Athena::CondObjDeleter< T >::quiescent ( const EventContext & ctx)
overridevirtual

Mark a slot as quiescent.

Parameters
ctxEvent context identifying the slot.

Implements CxxUtils::IRangeMapPayloadDeleter< void, EventContext >.

Member Data Documentation

◆ m_delfcn

delete_function* CxxUtils::IRangeMapPayloadDeleter< void, EventContext >::m_delfcn
privateinherited

Immediate deletion function.

Definition at line 86 of file ConcurrentRangeMap.h.

◆ m_obj

template<class T>
Athena::RCUObject<T> Athena::CondObjDeleter< T >::m_obj
private

Lifetime manager for discarded objects.

Definition at line 74 of file CondObjDeleter.h.


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