ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
StoreGate
StoreGate
SegMemSvc.h
Go to the documentation of this file.
1
/* -*- C++ -*- */
2
3
/*
4
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
#ifndef CONTROL_STOREGATE_SEGMEMSVC_H
8
#define CONTROL_STOREGATE_SEGMEMSVC_H 1
9
10
#include "GaudiKernel/Service.h"
11
#include "GaudiKernel/IIncidentListener.h"
12
#include "GaudiKernel/IIncidentSvc.h"
13
#include "GaudiKernel/MsgStream.h"
14
#include "GaudiKernel/ServiceHandle.h"
15
#include "
AthAllocators/Arena.h
"
16
17
#include <string>
18
19
27
28
class
SegMemSvc
:
public
extends<Service, IIncidentListener> {
29
30
public
:
31
32
33
enum
LIFETIME
{
34
EVENT
= 0,
35
JOB
= 1,
36
INCIDENT
= 2
37
};
38
39
virtual
StatusCode
initialize
()
override
;
40
virtual
void
handle
(
const
Incident&)
override
;
41
44
45
46
50
template
<
typename
T>
51
T*
allocate
(
SegMemSvc::LIFETIME
,
bool
cache=
true
);
52
54
template
<
typename
T>
55
bool
del
(T*);
56
58
59
60
SegMemSvc
(
const
std::string& name, ISvcLocator* svc );
61
62
// Destructor.
63
virtual
~SegMemSvc
();
64
65
66
private
:
67
68
ServiceHandle<IIncidentSvc>
p_incSvc
;
69
71
inline
std::string
cvt
(
SegMemSvc::LIFETIME
life) {
72
switch
(life) {
73
case
SegMemSvc::EVENT
:
return
"EVENT"
;
74
case
SegMemSvc::JOB
:
return
"JOB"
;
75
case
SegMemSvc::INCIDENT
:
return
"INCIDENT"
;
76
}
77
return
"UNKNOWN"
;
78
}
79
81
SG::ArenaHeader
m_ahead_job
,
m_ahead_evt
,
m_ahead_inc
;
82
SG::Arena
m_arena_job
,
m_arena_evt
,
m_arena_inc
;
83
84
85
};
86
87
88
#include "
StoreGate/SegMemSvc.icc
"
89
90
#endif
Arena.h
Collection of memory allocators with a common lifetime, plus subsystem summary.
SegMemSvc.icc
SG::ArenaHeader
Proxy for a group of Arenas.
Definition
ArenaHeader.h:54
SegMemSvc::m_ahead_job
SG::ArenaHeader m_ahead_job
three arenas for different lifetimes
Definition
SegMemSvc.h:81
SegMemSvc::handle
virtual void handle(const Incident &) override
Definition
SegMemSvc.cxx:58
SegMemSvc::allocate
T * allocate(SegMemSvc::LIFETIME, bool cache=true)
Get pointer to an area in the arena, used for new with placement.
SegMemSvc::m_ahead_evt
SG::ArenaHeader m_ahead_evt
Definition
SegMemSvc.h:81
SegMemSvc::~SegMemSvc
virtual ~SegMemSvc()
Definition
SegMemSvc.cxx:30
SegMemSvc::LIFETIME
LIFETIME
Definition
SegMemSvc.h:33
SegMemSvc::EVENT
@ EVENT
Definition
SegMemSvc.h:34
SegMemSvc::INCIDENT
@ INCIDENT
Definition
SegMemSvc.h:36
SegMemSvc::JOB
@ JOB
Definition
SegMemSvc.h:35
SegMemSvc::m_arena_inc
SG::Arena m_arena_inc
Definition
SegMemSvc.h:82
SegMemSvc::initialize
virtual StatusCode initialize() override
Definition
SegMemSvc.cxx:39
SegMemSvc::m_arena_job
SG::Arena m_arena_job
Definition
SegMemSvc.h:82
SegMemSvc::m_arena_evt
SG::Arena m_arena_evt
Definition
SegMemSvc.h:82
SegMemSvc::SegMemSvc
SegMemSvc(const std::string &name, ISvcLocator *svc)
Definition
SegMemSvc.cxx:18
SegMemSvc::p_incSvc
ServiceHandle< IIncidentSvc > p_incSvc
Definition
SegMemSvc.h:68
SegMemSvc::del
bool del(T *)
free memory managed by arena
SegMemSvc::cvt
std::string cvt(SegMemSvc::LIFETIME life)
helper to for printout
Definition
SegMemSvc.h:71
SegMemSvc::m_ahead_inc
SG::ArenaHeader m_ahead_inc
Definition
SegMemSvc.h:81
ServiceHandle
Definition
ClusterMakerTool.h:36
Generated on
for ATLAS Offline Software by
1.17.0