ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthenaKernel
AthenaKernel
CondObjDeleter.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
* Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration.
4
*/
11
12
13
#ifndef ATHENAKERNEL_CONDOBJDELETER_H
14
#define ATHENAKERNEL_CONDOBJDELETER_H
15
16
17
#include "
AthenaKernel/RCUObject.h
"
18
#include "
CxxUtils/ConcurrentRangeMap.h
"
19
#include "GaudiKernel/EventContext.h"
20
#include <mutex>
21
22
23
namespace
Athena
{
24
25
38
template
<
class
T>
39
class
CondObjDeleter
40
:
public
CxxUtils::IRangeMapPayloadDeleter
<void, EventContext>
41
{
42
public
:
47
CondObjDeleter
(
Athena::IRCUSvc
& rcusvc);
48
49
57
virtual
void
discard
(
const
void
* p)
override
;
58
59
64
virtual
void
quiescent
(
const
EventContext& ctx)
override
;
65
66
67
private
:
71
static
void
delPayload
(
const
void
* p);
72
74
Athena::RCUObject<T>
m_obj
;
75
};
76
77
78
}
// namespace Athena
79
80
81
#include "
AthenaKernel/CondObjDeleter.icc
"
82
83
84
#endif
// not ATHENAKERNEL_CONDOBJDELETER_H
ConcurrentRangeMap.h
Map from range to payload object, allowing concurrent, lockless reads.
CondObjDeleter.icc
RCUObject.h
read-copy-update (RCU) style synchronization for Athena.
Athena::CondObjDeleter::quiescent
virtual void quiescent(const EventContext &ctx) override
Mark a slot as quiescent.
Athena::CondObjDeleter::CondObjDeleter
CondObjDeleter(Athena::IRCUSvc &rcusvc)
Constructor.
Athena::CondObjDeleter::delPayload
static void delPayload(const void *p)
Function to delete a payload object immediately.
Athena::CondObjDeleter::discard
virtual void discard(const void *p) override
Queue an object for deletion.
Athena::CondObjDeleter::m_obj
Athena::RCUObject< T > m_obj
Lifetime manager for discarded objects.
Definition
CondObjDeleter.h:74
Athena::IRCUSvc
Interface for RCU service.
Definition
IRCUSvc.h:40
Athena::RCUObject
Wrapper object controlled by RCU synchonization.
Definition
RCUObject.h:312
CxxUtils::IRangeMapPayloadDeleter
Helper to delete payload objects for ConcurrentRangeMap.
Definition
ConcurrentRangeMap.h:44
Athena
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....
Definition
AthDsoUtils.h:10
Generated on
for ATLAS Offline Software by
1.17.0