ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT > Class Template Referenceabstract

Helper to delete payload objects for ConcurrentRangeMap. More...

#include <ConcurrentRangeMap.h>

Collaboration diagram for CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >:

Public Types

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

Public Member Functions

 IRangeMapPayloadDeleter (delete_function *delfcn)
 Constructor. More...
 
virtual ~IRangeMapPayloadDeleter ()=default
 Virtual destructor. More...
 
virtual void discard (const T *p)=0
 Queue an object for deletion. More...
 
virtual void quiescent (const CONTEXT &ctx)=0
 Mark a slot as quiescent. More...
 
delete_functiondelfcn () const
 Return a function to delete a payload object immediately. More...
 

Private Attributes

delete_functionm_delfcn
 Immediate deletion function. More...
 

Detailed Description

template<class T, class CONTEXT>
class CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >

Helper to delete payload objects for ConcurrentRangeMap.

This class provides an interface that ConcurrentRangeMap can use to delete payload objects. The discard function queues a payload object for deletion. It should not actually be deleted until quiescent has been called for each active slot. delfcn returns a pointer to a function that will delete the payload object immediately. This is only used in the ConcurrentRangeMap destructor.

Definition at line 44 of file ConcurrentRangeMap.h.

Member Typedef Documentation

◆ delete_function

template<class T , class CONTEXT >
typedef void CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::delete_function(const T *)

Type of a function to delete a payload object immediately.

Definition at line 48 of file ConcurrentRangeMap.h.

Constructor & Destructor Documentation

◆ IRangeMapPayloadDeleter()

template<class T , class CONTEXT >
CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::IRangeMapPayloadDeleter ( delete_function delfcn)

Constructor.

Parameters
delfcnFunction to delete a payload object immediately.

◆ ~IRangeMapPayloadDeleter()

template<class T , class CONTEXT >
virtual CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::~IRangeMapPayloadDeleter ( )
virtualdefault

Virtual destructor.

Member Function Documentation

◆ delfcn()

template<class T , class CONTEXT >
delete_function* CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::delfcn ( ) const

Return a function to delete a payload object immediately.

◆ discard()

template<class T , class CONTEXT >
virtual void CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::discard ( const T *  p)
pure virtual

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.

Implemented in Athena::CondObjDeleter< T >.

◆ quiescent()

template<class T , class CONTEXT >
virtual void CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::quiescent ( const CONTEXT &  ctx)
pure virtual

Mark a slot as quiescent.

Parameters
ctxEvent context identifying the slot.

Implemented in Athena::CondObjDeleter< T >.

Member Data Documentation

◆ m_delfcn

template<class T , class CONTEXT >
delete_function* CxxUtils::IRangeMapPayloadDeleter< T, CONTEXT >::m_delfcn
private

Immediate deletion function.

Definition at line 87 of file ConcurrentRangeMap.h.


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