ATLAS Offline Software
Loading...
Searching...
No Matches
CondSvc.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 IOVSVC_CONDSVC_H
6#define IOVSVC_CONDSVC_H
7
8#include "GaudiKernel/ICondSvc.h"
9#include "GaudiKernel/Service.h"
12#include "ICondSvcSetupDone.h"
13
14#include <unordered_map>
15#include <set>
16#include <vector>
17#include <mutex>
18
19class ConditionSlotFuture;
20class ICondtionIOSvc;
21
22class CondSvc final: public extends<AthService, ICondSvc, ICondSvcSetupDone> {
23public:
24
25 CondSvc(const std::string& name, ISvcLocator* svc);
26
27 virtual StatusCode initialize() override;
28 virtual StatusCode start() override;
29 virtual StatusCode stop() override;
30
31 virtual StatusCode regHandle(IAlgorithm* alg, const Gaudi::DataHandle& id) override;
32
33 virtual bool isValidID(const EventContext&, const DataObjID&) const override;
34
35 virtual const std::set<IAlgorithm*>& condAlgs() const override { return m_condAlgs; }
36 virtual bool isRegistered(const DataObjID& id) const override { return m_condIDs.contains(id); }
37 virtual bool isRegistered(IAlgorithm* ialg) const override { return m_condAlgs.contains(ialg); }
38 virtual const DataObjIDColl& conditionIDs() const override { return m_condIDs; }
39
40 virtual StatusCode validRanges( std::vector<EventIDRange>& ranges,
41 const DataObjID& id ) const override;
42
43 virtual void dump(std::ostream&) const override;
44
48 virtual StatusCode setupDone() override;
49
50
52
54 virtual ConditionSlotFuture* startConditionSetup(const EventContext&) override {
55 return nullptr;
56 }
57
60 virtual StatusCode registerConditionIOSvc(IConditionIOSvc*) override {
61 return StatusCode::FAILURE;
62 }
63
64
65
66private:
67
68 StatusCode regHandle_i(IAlgorithm* alg, const Gaudi::DataHandle& id);
69
71
72 std::set<IAlgorithm*> m_condAlgs;
73 DataObjIDColl m_condIDs;
74
76 std::unordered_map<DataObjID, IAlgorithm*, DataObjID_Hasher> m_idMap;
77
79 std::unordered_map<DataObjID, const CondContBase*, DataObjID_Hasher> m_condConts;
80
81 mutable std::mutex m_lock;
82
83};
84
85#endif
Interface to tell CondSvc to cache conditions containers.
DataObjIDColl m_condIDs
Definition CondSvc.h:73
ServiceHandle< StoreGateSvc > m_sgs
Definition CondSvc.h:70
virtual StatusCode regHandle(IAlgorithm *alg, const Gaudi::DataHandle &id) override
Definition CondSvc.cxx:109
virtual StatusCode registerConditionIOSvc(IConditionIOSvc *) override
register an IConditionIOSvc (alternative to Algorithm processing of Conditions)
Definition CondSvc.h:60
virtual ConditionSlotFuture * startConditionSetup(const EventContext &) override
unimplemented interfaces
Definition CondSvc.h:54
virtual bool isRegistered(const DataObjID &id) const override
Definition CondSvc.h:36
CondSvc(const std::string &name, ISvcLocator *svc)
Definition CondSvc.cxx:13
virtual bool isRegistered(IAlgorithm *ialg) const override
Definition CondSvc.h:37
std::mutex m_lock
Definition CondSvc.h:81
virtual StatusCode initialize() override
Definition CondSvc.cxx:42
StatusCode regHandle_i(IAlgorithm *alg, const Gaudi::DataHandle &id)
Definition CondSvc.cxx:120
std::unordered_map< DataObjID, IAlgorithm *, DataObjID_Hasher > m_idMap
Map from DataObjID to Algorithm to avoid duplicates.
Definition CondSvc.h:76
std::unordered_map< DataObjID, const CondContBase *, DataObjID_Hasher > m_condConts
Map from DataObjID to CondContBase (populated in setupDone)
Definition CondSvc.h:79
virtual const std::set< IAlgorithm * > & condAlgs() const override
Definition CondSvc.h:35
virtual StatusCode setupDone() override
To be called after changes to the set of conditions containers in the conditions store.
Definition CondSvc.cxx:195
virtual StatusCode start() override
Definition CondSvc.cxx:82
std::set< IAlgorithm * > m_condAlgs
Definition CondSvc.h:72
virtual StatusCode validRanges(std::vector< EventIDRange > &ranges, const DataObjID &id) const override
Definition CondSvc.cxx:22
virtual bool isValidID(const EventContext &, const DataObjID &) const override
Definition CondSvc.cxx:166
virtual StatusCode stop() override
Definition CondSvc.cxx:91
virtual const DataObjIDColl & conditionIDs() const override
Definition CondSvc.h:38
-event-from-file