ATLAS Offline Software
Loading...
Searching...
No Matches
ActiveStoreSvc.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_ACTIVESTORESVC_H
6#define STOREGATE_ACTIVESTORESVC_H
7
8#include "GaudiKernel/Service.h"
9#include "GaudiKernel/StatusCode.h"
10
13
14class StoreGateSvc;
15
16
28
29class ActiveStoreSvc : public extends<Service, IProxyDict>
30{
31public:
33 using base_class::base_class;
34
36 inline StoreGateSvc* activeStore() const {
37 // Can't just `return StoreGateSvc::currentStoreGate()` due to
38 // a circular dependency
39 return activeStoreOOL();
40 }
41
43 inline StoreGateSvc* operator->() const {
44 return activeStore();
45 }
46
49
51 void setStore(StoreGateSvc* s);
52
54 virtual SG::DataProxy* proxy(const void* const pTransient) const override;
55
57 virtual SG::DataProxy* proxy(const CLID& id, const std::string& key) const override;
58
62 virtual SG::DataProxy* proxy_exact (SG::sgkey_t sgkey) const override;
63
65 virtual std::vector<const SG::DataProxy*> proxies() const override;
67
69 StatusCode addToStore (CLID id, SG::DataProxy* proxy) override;
70
87 virtual
89 const std::string& key,
90 bool allowMods,
91 bool returnExisting) override;
92
93
102 virtual
103 sgkey_t stringToKey (const std::string& str, CLID clid) override;
104
112 virtual
113 const std::string* keyToString (sgkey_t key) const override;
114
123 virtual
124 const std::string* keyToString (sgkey_t key,
125 CLID& clid) const override;
126
139 virtual
140 void registerKey (sgkey_t key,
141 const std::string& str,
142 CLID clid) override;
143
144
145 virtual StatusCode initialize() override;
146
147private:
149 Gaudi::Property<std::string> m_storeName{this, "StoreName", StoreID::storeName(StoreID::EVENT_STORE), "StoreGate instance name"};
150
151};
152#endif // STOREGATE_ACTIVESTORESVC_H
153
154
155
uint32_t CLID
The Class ID type.
A service that caches a pointer to the currently active store.
virtual SG::DataProxy * proxy_exact(SG::sgkey_t sgkey) const override
Get proxy given a hashed key+clid.
virtual SG::DataProxy * recordObject(SG::DataObjectSharedPtr< DataObject > obj, const std::string &key, bool allowMods, bool returnExisting) override
Record an object in the store.
Gaudi::Property< std::string > m_storeName
virtual SG::DataProxy * proxy(const void *const pTransient) const override
get proxy for a given data object address in memory
virtual std::vector< const SG::DataProxy * > proxies() const override
return the list of all current proxies in store
StatusCode addToStore(CLID id, SG::DataProxy *proxy) override
Raw addition of a proxy to the store.
void setStore(StoreGateSvc *s)
set the active store pointer: used by the event loop mgrs
virtual StatusCode initialize() override
Service initialization.
virtual void registerKey(sgkey_t key, const std::string &str, CLID clid) override
Remember an additional mapping from key to string/CLID.
virtual const std::string * keyToString(sgkey_t key) const override
Find the string corresponding to a given key.
StoreGateSvc * operator->() const
dereference operator to access the active store
StoreGateSvc * activeStore() const
returns pointer to the active store as StoreGateSvc
StoreGateSvc * activeStoreOOL() const
virtual sgkey_t stringToKey(const std::string &str, CLID clid) override
Find the key for a string/CLID pair.
virtual SG::DataProxy * proxy(const CLID &id, const std::string &key) const =0
Get proxy with given id and key.
The Athena Transient Store API.
@ EVENT_STORE
Definition StoreID.h:26
static const std::string & storeName(const StoreID::type &s)
Definition StoreID.cxx:77
CxxUtils::RefCountedPtr< T > DataObjectSharedPtr
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32