5#ifndef IOVSVC_CONDSVC_H
6#define IOVSVC_CONDSVC_H
8#include "GaudiKernel/ICondSvc.h"
9#include "GaudiKernel/Service.h"
14#include <unordered_map>
19class ConditionSlotFuture;
22class CondSvc final:
public extends<AthService, ICondSvc, ICondSvcSetupDone> {
25 CondSvc(
const std::string& name, ISvcLocator* svc);
28 virtual StatusCode
start()
override;
29 virtual StatusCode
stop()
override;
31 virtual StatusCode
regHandle(IAlgorithm* alg,
const Gaudi::DataHandle&
id)
override;
33 virtual bool isValidID(
const EventContext&,
const DataObjID&)
const override;
40 virtual StatusCode
validRanges( std::vector<EventIDRange>& ranges,
41 const DataObjID&
id )
const override;
43 virtual void dump(std::ostream&)
const override;
61 return StatusCode::FAILURE;
68 StatusCode
regHandle_i(IAlgorithm* alg,
const Gaudi::DataHandle&
id);
76 std::unordered_map<DataObjID, IAlgorithm*, DataObjID_Hasher>
m_idMap;
79 std::unordered_map<DataObjID, const CondContBase*, DataObjID_Hasher>
m_condConts;
Interface to tell CondSvc to cache conditions containers.
ServiceHandle< StoreGateSvc > m_sgs
virtual StatusCode regHandle(IAlgorithm *alg, const Gaudi::DataHandle &id) override
virtual StatusCode registerConditionIOSvc(IConditionIOSvc *) override
register an IConditionIOSvc (alternative to Algorithm processing of Conditions)
virtual ConditionSlotFuture * startConditionSetup(const EventContext &) override
unimplemented interfaces
virtual bool isRegistered(const DataObjID &id) const override
CondSvc(const std::string &name, ISvcLocator *svc)
virtual bool isRegistered(IAlgorithm *ialg) const override
virtual StatusCode initialize() override
StatusCode regHandle_i(IAlgorithm *alg, const Gaudi::DataHandle &id)
std::unordered_map< DataObjID, IAlgorithm *, DataObjID_Hasher > m_idMap
Map from DataObjID to Algorithm to avoid duplicates.
std::unordered_map< DataObjID, const CondContBase *, DataObjID_Hasher > m_condConts
Map from DataObjID to CondContBase (populated in setupDone)
virtual const std::set< IAlgorithm * > & condAlgs() const override
virtual StatusCode setupDone() override
To be called after changes to the set of conditions containers in the conditions store.
virtual StatusCode start() override
std::set< IAlgorithm * > m_condAlgs
virtual StatusCode validRanges(std::vector< EventIDRange > &ranges, const DataObjID &id) const override
virtual bool isValidID(const EventContext &, const DataObjID &) const override
virtual StatusCode stop() override
virtual const DataObjIDColl & conditionIDs() const override