ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
StoreGate
StoreGate
SGHiveMgrSvc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef STOREGATE_HIVEMGRSVC_H
6
#define STOREGATE_HIVEMGRSVC_H
7
8
#include <vector>
9
#include <string>
10
#include <mutex>
11
12
#include "GaudiKernel/Service.h"
13
#include "GaudiKernel/ServiceHandle.h"
14
#include "GaudiKernel/StatusCode.h"
15
#include "GaudiKernel/IHiveWhiteBoard.h"
16
17
#include "
StoreGate/StoreGateSvc.h
"
18
#include "
StoreGate/SGHiveEventSlot.h
"
19
20
class
StoreGateSvc
;
21
class
ISvcLocator;
22
class
HltEventLoopMgr
;
// friend
23
29
namespace
SG
{
30
class
HiveMgrSvc
:
public
extends<Service, IHiveWhiteBoard> {
31
friend
class
TestSGHiveMgrSvc
;
32
friend
class ::HltEventLoopMgr;
33
public
:
35
41
virtual
StatusCode
selectStore
(
size_t
slotIndex)
override
;
42
48
virtual
StatusCode
clearStore
(
size_t
slotIndex)
override
;
49
55
virtual
StatusCode
setNumberOfStores
(
size_t
slots)
override
;
56
61
virtual
size_t
getNumberOfStores
()
const override
;
62
69
virtual
bool
exists
(
const
DataObjID& )
override
;
70
77
virtual
size_t
allocateStore
(
int
evtnumber )
override
;
78
84
virtual
StatusCode
freeStore
(
size_t
slotIndex )
override
;
85
86
92
virtual
size_t
getPartitionNumber
(
int
eventnumber)
const override
;
93
95
virtual
size_t
freeSlots
()
override
;
96
98
virtual
StatusCode
initialize
()
override
;
99
virtual
StatusCode
finalize
()
override
;
100
virtual
StatusCode
start
()
override
;
102
104
HiveMgrSvc
(
const
std::string& name, ISvcLocator* svc);
105
106
virtual
~HiveMgrSvc
() {}
107
108
private
:
117
static
void
setNumProcs
(
size_t
numProcs);
118
119
ServiceHandle<StoreGateSvc>
m_hiveStore
;
120
size_t
m_nSlots
;
//property settable also by setNumberOfStores
121
std::vector<SG::HiveEventSlot>
m_slots
;
122
mutable
std::mutex
m_mutex
;
//< protects m_slots access
123
std::atomic<size_t>
m_freeSlots
{0};
124
125
};
126
}
//namespace SG
127
#endif
// STOREGATE_HIVEMGRSVC_H
SGHiveEventSlot.h
StoreGateSvc.h
HltEventLoopMgr
AthenaMT event loop manager for running HLT online.
Definition
HltEventLoopMgr.h:72
SG::HiveMgrSvc::m_nSlots
size_t m_nSlots
Definition
SGHiveMgrSvc.h:120
SG::HiveMgrSvc::start
virtual StatusCode start() override
Definition
SGHiveMgrSvc.cxx:234
SG::HiveMgrSvc::allocateStore
virtual size_t allocateStore(int evtnumber) override
Allocate a store slot for new event.
Definition
SGHiveMgrSvc.cxx:98
SG::HiveMgrSvc::HiveMgrSvc
HiveMgrSvc(const std::string &name, ISvcLocator *svc)
Standard Service Constructor. sets active store to default event store.
Definition
SGHiveMgrSvc.cxx:17
SG::HiveMgrSvc::getNumberOfStores
virtual size_t getNumberOfStores() const override
Get the number of 'slots'.
Definition
SGHiveMgrSvc.cxx:86
SG::HiveMgrSvc::setNumProcs
static void setNumProcs(size_t numProcs)
Set number of concurrent processes.
Definition
SGHiveMgrSvc.cxx:35
SG::HiveMgrSvc::exists
virtual bool exists(const DataObjID &) override
Check if a data object exists in store.
Definition
SGHiveMgrSvc.cxx:161
SG::HiveMgrSvc::~HiveMgrSvc
virtual ~HiveMgrSvc()
Definition
SGHiveMgrSvc.h:106
SG::HiveMgrSvc::m_freeSlots
std::atomic< size_t > m_freeSlots
Definition
SGHiveMgrSvc.h:123
SG::HiveMgrSvc::freeSlots
virtual size_t freeSlots() override
Get free slots number.
Definition
SGHiveMgrSvc.cxx:157
SG::HiveMgrSvc::getPartitionNumber
virtual size_t getPartitionNumber(int eventnumber) const override
Get the slot number corresponding to a given event.
Definition
SGHiveMgrSvc.cxx:149
SG::HiveMgrSvc::selectStore
virtual StatusCode selectStore(size_t slotIndex) override
Activate an given 'slot' for all subsequent calls within the same thread id.
Definition
SGHiveMgrSvc.cxx:46
SG::HiveMgrSvc::m_hiveStore
ServiceHandle< StoreGateSvc > m_hiveStore
Definition
SGHiveMgrSvc.h:119
SG::HiveMgrSvc::m_mutex
std::mutex m_mutex
Definition
SGHiveMgrSvc.h:122
SG::HiveMgrSvc::clearStore
virtual StatusCode clearStore(size_t slotIndex) override
Clear a given 'slot'.
Definition
SGHiveMgrSvc.cxx:57
SG::HiveMgrSvc::TestSGHiveMgrSvc
friend class TestSGHiveMgrSvc
Definition
SGHiveMgrSvc.h:31
SG::HiveMgrSvc::setNumberOfStores
virtual StatusCode setNumberOfStores(size_t slots) override
Set the number of 'slots'.
Definition
SGHiveMgrSvc.cxx:72
SG::HiveMgrSvc::m_slots
std::vector< SG::HiveEventSlot > m_slots
Definition
SGHiveMgrSvc.h:121
SG::HiveMgrSvc::initialize
virtual StatusCode initialize() override
Definition
SGHiveMgrSvc.cxx:182
SG::HiveMgrSvc::freeStore
virtual StatusCode freeStore(size_t slotIndex) override
Free a store slot.
Definition
SGHiveMgrSvc.cxx:125
SG::HiveMgrSvc::finalize
virtual StatusCode finalize() override
Definition
SGHiveMgrSvc.cxx:220
ServiceHandle
Definition
ClusterMakerTool.h:36
StoreGateSvc
The Athena Transient Store API.
Definition
StoreGateSvc.h:120
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
Generated on
for ATLAS Offline Software by
1.17.0