ATLAS Offline Software
Public Types | Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
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. More...
 

Public Member Functions

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

Static Private Member Functions

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

Private Attributes

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

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 48 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
inherited

Return a function to delete a payload object immediately.

◆ delPayload()

template<class T >
static 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 87 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: