ATLAS Offline Software
Loading...
Searching...
No Matches
SGImplSvc.h
Go to the documentation of this file.
1/* -*- C++ -*- */
2
3/*
4 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef STOREGATE_SGIMPLSVC_H
8#define STOREGATE_SGIMPLSVC_H
9
10//FIXME the CLASS_DEF header is not needed here but was added to work around
11//bad include statements in client code: when using CLASS_DEF put the
12//include below in your header file!
14
15//base classes
16#include "GaudiKernel/IIncidentListener.h"
17#include "GaudiKernel/Service.h"
18#include "GaudiKernel/ServiceHandle.h"
19#include "GaudiKernel/IConverter.h"
21
22#include <GaudiKernel/ClassID.h> // for CLID
23#include <GaudiKernel/IInterface.h> // for InterfaceID
24#include <GaudiKernel/IMessageSvc.h> // for Level
25#include "GaudiKernel/MsgStream.h"
26#include "Gaudi/Property.h"
27#include "GaudiKernel/StatusCode.h"
28
29#include "GaudiKernel/DataObjID.h"
30
31#include <cstddef> // for size_t
32#include <list>
33#include <memory>
34#include <string>
35#include <sys/types.h> // for off_t
36#include <vector>
37#include <thread>
38
44
45#include <SGTools/StringPool.h>
46#include "SGTools/ProxyMap.h" /* for SG::ConstProxyIterator */
47
48
49// includes used in SGImplSvc.icc
50#include "GaudiKernel/IClassIDSvc.h"
54#include "StoreGate/SGWPtr.h"
57#include "AthAllocators/Arena.h"
58
59#include "GaudiKernel/IIncidentSvc.h"
60
61//forward declarations
62namespace SG {
63 class DataProxy;
64 class TransientAddress;
65 struct RemapImpl;
66 class AuxVectorBase;
67 class AuxElement;
68 class DataStore;
69}
70
71class DataObject;
72class IConversionSvc;
73class Incident;
74class IHistorySvc;
75
76// python forward
77struct _object; typedef _object PyObject;
78class StoreGateSvc;
79namespace AthenaInternal {
80 PyObject* recordObjectToStore(StoreGateSvc*,PyObject*,PyObject*,bool,bool,bool);
81 void py_sg_clearProxyPayload(StoreGateSvc* self, SG::DataProxy*);
82}
83
84namespace SG {
85 class NoAuxStore;
86}
87
88//friends...
90class IOVDbSvc;
91class IOVSvcTool;
92class ActiveStoreSvc;
93namespace SG {
94 class VarHandleBase;
95}
96
105class SGImplSvc final : public extends<Service,
106 IProxyDict,
107 IHiveStoreMgr,
108 IIncidentListener>
109{
110
111public:
112 SGImplSvc (const SGImplSvc&) = delete;
113 SGImplSvc& operator= (const SGImplSvc&) = delete;
114
115
118
119
121 StatusCode retrieve (CLID clid,
122 SG::detail::IteratorBase& cibegin,
123 SG::detail::IteratorBase& ciend) const;
124
125
127
130
131
133 StatusCode recordAddress(const std::string& skey,
135 bool clearAddressFlag=true);
138 bool clearAddressFlag=true);
139
141 StatusCode symLink (const void* p2BRegistered, CLID linkID );
142
144 StatusCode symLink (const CLID id, const std::string& key, const CLID linkid);
145
147 StatusCode setAlias(CLID clid, const std::string& key, const std::string& aliasKey);
148
150 StatusCode setAlias(const void* p2BAliased, const std::string& aliasKey);
151
153 StatusCode setAlias(SG::DataProxy* proxy, const std::string& aliasKey);
154
156 StatusCode setConst(const void* pointer);
157
159 StatusCode remove(const void* pObject);
160
162 StatusCode removeDataAndProxy(const void* pObject);
163
169 bool transientSwap( const CLID& id,
170 const std::string& keyA, const std::string& keyB );
171
173
176
177
178 DataObject*
179 typeless_retrievePrivateCopy (const CLID clid, const std::string& key);
180
181
185 CLID clid( const std::string& key ) const;
186
190 std::vector<CLID> clids( const std::string& key ) const;
191
193 int typeCount(const CLID& id) const;
194
198 bool contains(const CLID id, const std::string& key) const;
199
200
203 bool transientContains(const CLID id, const std::string& key) const;
204
207 std::string dump() const;
208
210 void setStoreID(StoreID::type id);
212 StoreID::type storeID() const;
213
214
222 void
223 keys(const CLID& id, std::vector<std::string>& vkeys,
224 bool includeAlias = false, bool onlyValid = true);
225
227 virtual ::IProxyDict* hiveProxyDict() override final {
228 return this;
229 }
230
232
234 virtual SG::DataProxy* proxy(const void* const pTransient) const override final;
235
238 virtual SG::DataProxy* proxy(const CLID& id) const final;
239
241 virtual SG::DataProxy* proxy(const CLID& id, const std::string& key) const override final;
244 virtual SG::DataProxy* proxy(const CLID& id, const char* key) const final
245 { return this->proxy(id, std::string(key)); }
246
248 virtual StatusCode addToStore (CLID id, SG::DataProxy* proxy) override final;
249
270 virtual
272 const std::string& key,
273 bool allowMods,
274 bool returnExisting) override final;
275
276
280 virtual SG::DataProxy* proxy_exact (SG::sgkey_t sgkey) const override final;
281
282
284
286
287
289 virtual SG::DataProxy* proxy(const CLID& id, bool checkValid) const;
292 virtual SG::DataProxy* proxy(const CLID& id, const std::string& key, bool checkValid) const;
296 virtual SG::DataProxy* proxy(const CLID& id, const char* key, bool checkValid) const
297 { return this->proxy(id, std::string(key), checkValid); }
298
300 virtual std::vector<const SG::DataProxy*> proxies() const override final;
301
304
307 SG::DataProxy* transientProxy(const CLID& id, const std::string& key) const;
308
310 DataObject* accessData(const CLID& id) const;
312 DataObject* accessData(const CLID& id, const std::string& key) const;
313
319
320
328 virtual SG::SourceID sourceID (const std::string& key = "EventSelector") const override;
329
332
333
335
344 virtual
345 sgkey_t stringToKey (const std::string& str, CLID clid) override final;
346
354 virtual
355 const std::string* keyToString (sgkey_t key) const override final;
356
365 virtual
366 const std::string* keyToString (sgkey_t key, CLID& clid) const override final;
367
380 virtual
381 void registerKey (sgkey_t key,
382 const std::string& str,
383 CLID clidid) override final;
384
385
393 bool mergeStringPool (const SGImplSvc& other);
394
395
397
400
401
402
410 void remap_impl (sgkey_t source,
411 sgkey_t target,
412 off_t index_offset);
413
414
423 virtual bool tryELRemap (sgkey_t sgkey_in, size_t index_in,
424 sgkey_t& sgkey_out, size_t& index_out) override final;
425
427
430
431 SGImplSvc(const std::string& name, ISvcLocator* svc);
432 virtual ~SGImplSvc() override final;
434
437
438 virtual StatusCode initialize() override final;
439 virtual StatusCode reinitialize() override final;
440 virtual StatusCode start() override final;
441 virtual StatusCode stop() override final;
442 virtual StatusCode finalize() override final;
444
445
448
449
450 virtual void handle(const Incident&) override final;
452 StatusCode loadEventProxies();
454
455
458
459
461 virtual StatusCode clearStore(bool forceRemove=false) override final;
462
465 virtual void commitNewDataObjects() override final;
467
468
475 void setSlotNumber (int slot, int numSlots);
476
477
483 virtual void boundHandle (IResetable* handle) override final;
484
485
491 virtual void unboundHandle (IResetable* handle) override final;
492
493
495 // Const methods:
497
508 virtual
509 StatusCode createObj (IConverter* cvt,
510 IOpaqueAddress* addr,
511 DataObject*& refpObject) override;
512
513
515private:
516
517 StatusCode record_HistObj(const CLID& id, const std::string& key,
518 const std::string& store, bool allowMods,
519 bool resetOnly=true);
520
521
522 friend
523 PyObject*
527 StatusCode typeless_record( DataObject* obj, const std::string& key,
528 const void* const raw_ptr,
529 bool allowMods, bool resetOnly=true,
530 bool noHist=false );
532 StatusCode typeless_overwrite( const CLID& id,
533 DataObject* obj, const std::string& key,
534 const void* const raw_ptr,
535 bool allowMods,
536 bool noHist=false,
537 const std::type_info* tinfo=0);
538
539 StatusCode typeless_record( DataObject* obj, const std::string& key,
540 const void* const raw_ptr,
541 bool allowMods, bool resetOnly,
542 bool noHist,
543 const std::type_info* tinfo);
544 StatusCode typeless_record( DataObject* obj, const std::string& key,
545 const void* const raw_ptr,
546 bool allowMods, bool resetOnly,
547 bool noHist,
548 const std::type_info* tinfo,
549 SG::DataProxy** proxy_ret,
550 bool noOverwrite);
551
554 SG::DataProxy* record_impl( DataObject* obj, const std::string& key,
555 const void* const raw_ptr,
556 bool allowMods, bool resetOnly, bool allowOverwrite,
557 const std::type_info* tinfo);
558
559
562 void releaseObject(const CLID& id, const std::string& key);
563
565 friend class IOVDbSvc;
566 friend class IOVSvcTool;
567 friend
568 void
573
576 bool checkValid = false) const;
577
579 friend class AthenaOutputStream;
581 StatusCode proxyRange(const CLID& id,
584
585 friend class StoreGateSvc;
587 friend class SG::VarHandleBase;
588
589 SG::DataStore* store();
591
592 bool isSymLinked(const CLID& linkID, SG::DataProxy* dp);
593
594 StatusCode addSymLink(const CLID& linkid, SG::DataProxy* dp);
595
596 StatusCode addAlias(const std::string& aliasKey, SG::DataProxy* dp);
597
599 std::string createKey(const CLID& dataID);
600
602 SG::DataProxy* setupProxy(const CLID& dataID,
603 const std::string& gK,
604 DataObject* pDObj,
605 bool allowMods,
606 bool resetOnly);
607
609 void recycle(DataObject* pBadDObj);
611 void emptyTrash();
612
614 bool bindHandleToProxy(const CLID& id, const std::string& key,
615 IResetable* ir, SG::DataProxy*& dp);
616
618 bool bindHandleToProxyAndRegister (const CLID& id, const std::string& key,
619 IResetable* ir, SG::DataProxy *&dp);
620
624 StatusCode removeProxy(SG::DataProxy* proxy, const void* pTrans,
625 bool forceRemove=false);
627 StatusCode t2pRegister(const void* const pTrans, SG::DataProxy* const pPers);
629 void t2pRemove(const void* const pTrans);
630
632 void msg_update_handler(Gaudi::Details::PropertyBase& outputLevel);
633
634 bool associateAux_impl (SG::AuxVectorBase* ptr,
635 const std::string& key,
636 CLID auxclid) const;
637
638 bool associateAux_impl (SG::AuxElement* ptr,
639 const std::string& key,
640 CLID auxclid) const;
641
643 void addAutoSymLinks (const std::string& key, CLID clid, SG::DataProxy* dp,
644 const std::type_info* tinfo,
645 bool warn_nobib = true);
646
647 friend class ActiveStoreSvc;
651 void makeCurrent();
652
655
657 // Has to be separate from handle due to setProxyProviderSvc() interface.
658 // Can we get rid of that?
660
662
664 std::list<DataObject*> m_trash;
665
666 ServiceHandle<IIncidentSvc> m_pIncSvc;
670
671 // typedef std::list<std::string> StrList;
672 StringArrayProperty m_folderNameList;
673
676
678
679 SG::StringPool m_stringpool;
680
681 SG::RemapImpl* m_remap_impl;
682
684 SG::Arena m_arena;
685
688
691
697
698 typedef std::recursive_mutex mutex_t;
703};
704
705
707void SG_dump (SGImplSvc* sg);
708void SG_dump (SGImplSvc* sg, const char* fname);
709
710
711#include "StoreGate/tools/SGImplSvc.icc"
712
713#endif // STOREGATE_SGIMPLSVC_H
Collection of memory allocators with a common lifetime, plus subsystem summary.
macros to associate a CLID to a type
ProxyMap::const_iterator ConstProxyIterator
Definition ProxyMap.h:24
uint32_t CLID
The Class ID type.
_object PyObject
Simple smart pointer for Gaudi-style refcounted objects.
void SG_dump(SGImplSvc *sg)
These are intended to be easy to call from the debugger.
A standard conforming forward iterator over items in StoreGate.
associate a data object with its VersionedKey
defines a StoreGateSvc key with a version number
return type of StoreGateSvc::create.
Maintain a mapping of strings to 64-bit ints.
A service that caches a pointer to the currently active store.
algorithm that marks for write data objects in SG
Simple smart pointer for Gaudi-style refcounted objects.
DataProxy provides the registry services for StoreGate.
Hold DataProxy instances associated with a store.
Abstract interface for IOVSvc.
Definition IIOVSvc.h:35
Athena service for Interval Of Validity database.
Definition IOVDbSvc.h:82
a resetable object (e.g.
Definition IResetable.h:15
Abstract interface for looking up strings/CLIDs in a pool.
Definition IStringPool.h:28
virtual SG::DataProxy * proxy(const void *const pTransient) const override final
get proxy for a given data object address in memory
virtual bool tryELRemap(sgkey_t sgkey_in, size_t index_in, sgkey_t &sgkey_out, size_t &index_out) override final
Test to see if the target of an ElementLink has moved.
std::recursive_mutex mutex_t
Definition SGImplSvc.h:698
void addAutoSymLinks(const std::string &key, CLID clid, SG::DataProxy *dp, const std::type_info *tinfo, bool warn_nobib=true)
Add automatically-made symlinks for DP.
void setStoreID(StoreID::type id)
set store ID. request forwarded to DataStore:
StatusCode t2pRegister(const void *const pTrans, SG::DataProxy *const pPers)
forwarded to DataStore
friend class ActiveStoreSvc
Definition SGImplSvc.h:647
StatusCode symLink(const void *p2BRegistered, CLID linkID)
make a soft link to the object T* already registered
StatusCode typeless_record(DataObject *obj, const std::string &key, const void *const raw_ptr, bool allowMods, bool resetOnly=true, bool noHist=false)
type-less recording of an object with a key, allow possibility of specifying const-access and history...
virtual void boundHandle(IResetable *handle) override final
Tell the store that a proxy has been bound to a handle.
friend class SG::VarHandleBase
access typeless_record
Definition SGImplSvc.h:587
IProxyProviderSvc * proxyProviderSvc()
Return current ProxyProviderSvc.
DataObject * typeless_retrievePrivateCopy(const CLID clid, const std::string &key)
virtual sgkey_t stringToKey(const std::string &str, CLID clid) override final
Find the key for a string/CLID pair.
StatusCode remove(const void *pObject)
Remove pObject, will remove its proxy if not reset only.
virtual void handle(const Incident &) override final
triggered by Incident service
SG::DataProxy * locatePersistent(const SG::TransientAddress *tAddr, bool checkValid=false) const
virtual std::vector< const SG::DataProxy * > proxies() const override final
return the list of all current proxies in store
StatusCode setAlias(CLID clid, const std::string &key, const std::string &aliasKey)
make an alias to a DataObject (provide data type and old key)
friend class AthenaOutputStream
access proxyRange()
Definition SGImplSvc.h:579
virtual SG::DataProxy * recordObject(SG::DataObjectSharedPtr< DataObject > obj, const std::string &key, bool allowMods, bool returnExisting) override final
Record an object in the store.
StatusCode loadEventProxies()
load proxies at begin event
void keys(const CLID &id, std::vector< std::string > &vkeys, bool includeAlias=false, bool onlyValid=true)
provide list of all StoreGate keys associated with an object.
SG::DataStore * store()
SG::RemapImpl * m_remap_impl
Definition SGImplSvc.h:681
int m_slotNumber
The Hive slot number for this store, or -1 if this isn't a Hive store.
Definition SGImplSvc.h:687
friend class IOVSvcTool
Definition SGImplSvc.h:566
ServiceHandle< IProxyProviderSvc > m_pPPSHandle
Definition SGImplSvc.h:656
virtual StatusCode finalize() override final
Service finalization.
friend class StoreGateSvc
Definition SGImplSvc.h:585
std::map< std::thread::id, std::vector< IResetable * > > m_newBoundHandles
Keep track of proxies bound since the last call to commitNewDataObjects or clearStore.
Definition SGImplSvc.h:696
virtual SG::SourceID sourceID(const std::string &key="EventSelector") const override
Return the metadata source ID for the current event slot.
StatusCode setConst(const void *pointer)
prevent downstream clients from modifying the pointed-at dobj
virtual StatusCode createObj(IConverter *cvt, IOpaqueAddress *addr, DataObject *&refpObject) override
Call converter to create an object, with locking.
bool m_DumpStore
Dump Property flag: triggers dump() at EndEvent.
Definition SGImplSvc.h:667
bool m_ActivateHistory
Activate the history service.
Definition SGImplSvc.h:668
CLID clid(const std::string &key) const
Retrieve the main CLID of the object recorded in StoreGate with the given "key" WARNING: slow!
void msg_update_handler(Gaudi::Details::PropertyBase &outputLevel)
callback for output level property
SG::StringPool m_stringpool
Definition SGImplSvc.h:679
virtual StatusCode start() override final
Service start.
mutex_t m_mutex
Definition SGImplSvc.h:700
std::string createKey(const CLID &dataID)
creates a key internally if none specified by client
bool m_DumpArena
DumpArena Property flag : trigger m_arena->report() at clearStore.
Definition SGImplSvc.h:669
StatusCode removeProxy(SG::DataProxy *proxy, const void *pTrans, bool forceRemove=false)
remove proxy from store, unless it is reset only.
StoreID::type storeID() const
get store ID. request forwarded to DataStore:
StatusCode proxyRange(const CLID &id, SG::ConstProxyIterator &beg, SG::ConstProxyIterator &end) const
return a range to all proxies of a given CLID
bool bindHandleToProxyAndRegister(const CLID &id, const std::string &key, IResetable *ir, SG::DataProxy *&dp)
Also do registration with IOVSvc.
void remap_impl(sgkey_t source, sgkey_t target, off_t index_offset)
Declare a remapping.
virtual void registerKey(sgkey_t key, const std::string &str, CLID clidid) override final
Remember an additional mapping from key to string/CLID.
StatusCode addSymLink(const CLID &linkid, SG::DataProxy *dp)
SG::Arena m_arena
Allocation arena to associate with this store.
Definition SGImplSvc.h:684
virtual StatusCode clearStore(bool forceRemove=false) override final
clear DataStore contents: called by the event loop mgrs
bool isSymLinked(const CLID &linkID, SG::DataProxy *dp)
bool bindHandleToProxy(const CLID &id, const std::string &key, IResetable *ir, SG::DataProxy *&dp)
name says it all
std::lock_guard< mutex_t > lock_t
Definition SGImplSvc.h:699
IProxyProviderSvc * m_pPPS
Definition SGImplSvc.h:659
virtual void commitNewDataObjects() override final
Reset handles added since the last call to commit.
int typeCount(const CLID &id) const
Return the number of instances of type T (input CLID)
virtual StatusCode stop() override final
Service stop.
void t2pRemove(const void *const pTrans)
forwarded to DataStore
virtual StatusCode addToStore(CLID id, SG::DataProxy *proxy) override final
Raw addition of a proxy to the store.
SG::DataStore * m_pStore
Definition SGImplSvc.h:663
StatusCode recordAddress(const std::string &skey, CxxUtils::RefCountedPtr< IOpaqueAddress > pAddress, bool clearAddressFlag=true)
Create a proxy object using an IOpaqueAddress and a transient key.
StatusCode record_HistObj(const CLID &id, const std::string &key, const std::string &store, bool allowMods, bool resetOnly=true)
virtual const std::string * keyToString(sgkey_t key) const override final
Find the string corresponding to a given key.
friend PyObject * AthenaInternal::recordObjectToStore(StoreGateSvc *, PyObject *, PyObject *, bool, bool, bool)
void clearProxyPayload(SG::DataProxy *)
use to reset a proxy (clearing the data object it contains) Unlike DataProxy::reset this method corre...
StatusCode removeDataAndProxy(const void *pObject)
Remove pObject and its proxy no matter what.
mutex_t m_stringPoolMutex
Definition SGImplSvc.h:702
virtual::IProxyDict * hiveProxyDict() override final
implements IHiveStore interface for compat with Hive
Definition SGImplSvc.h:227
StringArrayProperty m_folderNameList
FolderNameList Property.
Definition SGImplSvc.h:672
SG::DataProxy * setupProxy(const CLID &dataID, const std::string &gK, DataObject *pDObj, bool allowMods, bool resetOnly)
try to locate a proxy or create it if needed
std::vector< CLID > clids() const
Return all CLIDs in the store.
std::list< DataObject * > m_trash
The Recycle Bin.
Definition SGImplSvc.h:664
ServiceHandle< IHistorySvc > m_pHistorySvc
Definition SGImplSvc.h:661
void releaseObject(const CLID &id, const std::string &key)
release object held by proxy, if any.
IStringPool::sgkey_t sgkey_t
Definition SGImplSvc.h:334
ServiceHandle< IIOVSvc > m_pIOVSvc
get the IOVSvc "just in time" (breaks recursion at initialize)
Definition SGImplSvc.h:675
void makeCurrent()
The current store is becoming the active store.
SGImplSvc(const SGImplSvc &)=delete
virtual SG::DataProxy * proxy(const CLID &id, const char *key, bool checkValid) const
get proxy with given id and key, optionally checking validity.
Definition SGImplSvc.h:296
int m_numSlots
The total number of slots. 1 if this isn't a Hive store.
Definition SGImplSvc.h:690
bool mergeStringPool(const SGImplSvc &other)
Merge the string pool from another store into this one.
DataObject * accessData(const CLID &id) const
find proxy and access its data. Returns 0 to flag failure
void recycle(DataObject *pBadDObj)
put a bad (unrecordable) dobj away
SGImplSvc & operator=(const SGImplSvc &)=delete
virtual StatusCode reinitialize() override final
Service reinitialization.
void setProxyProviderSvc(IProxyProviderSvc *pPPSvc)
associate ProxyProviderSvc to this store
bool m_storeLoaded
FIXME hack needed by loadEventProxies.
Definition SGImplSvc.h:677
virtual SG::DataProxy * proxy_exact(SG::sgkey_t sgkey) const override final
Get proxy given a hashed key+clid.
ServiceHandle< IClassIDSvc > m_pCLIDSvc
Definition SGImplSvc.h:653
friend void AthenaInternal::py_sg_clearProxyPayload(StoreGateSvc *, SG::DataProxy *)
bool transientContains(const CLID id, const std::string &key) const
Look up a transient data object in TDS only by CLID.
ServiceHandle< IIncidentSvc > m_pIncSvc
property
Definition SGImplSvc.h:666
std::string dump() const
dump objects in store.
StatusCode addAlias(const std::string &aliasKey, SG::DataProxy *dp)
bool contains(const CLID id, const std::string &key) const
Look up a keyed object in TDS by CLID.
virtual SG::DataProxy * proxy(const CLID &id, const char *key) const final
get proxy with given id and key.
Definition SGImplSvc.h:244
friend class IOVDbSvc
access clearProxyPayload
Definition SGImplSvc.h:565
bool transientSwap(const CLID &id, const std::string &keyA, const std::string &keyB)
swap the content of 2 keys payload A indexed by keyA will now be accessed via keyB and vice versa Not...
mutex_t m_remapMutex
Definition SGImplSvc.h:701
void setSlotNumber(int slot, int numSlots)
Set the Hive slot number for this store.
StatusCode retrieve(CLID clid, SG::detail::IteratorBase &cibegin, SG::detail::IteratorBase &ciend) const
Retrieve all objects of type T: returns an SG::ConstIterator range.
virtual void unboundHandle(IResetable *handle) override final
Tell the store that a handle has been unbound from a proxy.
SG::DataProxy * transientProxy(const CLID &id, const std::string &key) const
get proxy with given id and key.
bool associateAux_impl(SG::AuxVectorBase *ptr, const std::string &key, CLID auxclid) const
virtual StatusCode initialize() override final
Service initialization.
StatusCode typeless_overwrite(const CLID &id, DataObject *obj, const std::string &key, const void *const raw_ptr, bool allowMods, bool noHist=false, const std::type_info *tinfo=0)
same as typeless_record, allows to overwrite an object in memory or on disk
SG::DataProxy * record_impl(DataObject *obj, const std::string &key, const void *const raw_ptr, bool allowMods, bool resetOnly, bool allowOverwrite, const std::type_info *tinfo)
real recording of an object with a key, allow possibility of specifying const-access
void emptyTrash()
throw away bad objects
ServiceHandle< IConversionSvc > m_pDataLoader
Definition SGImplSvc.h:654
Base class for elements of a container that can have aux data.
Definition AuxElement.h:484
Manage index tracking and synchronization of auxiliary data.
Hold DataProxy instances associated with a store.
Mark that there's no associated AuxStore class.
Base class for VarHandle types.
Implementation class, not to be used directly Iterates over valid proxies it the range.
Definition SGIterator.h:37
The Athena Transient Store API.
STL class.
STL class.
int ir
counter of the current depth
Definition fastadd.cxx:49
PyObject * recordObjectToStore(StoreGateSvc *, PyObject *, PyObject *, bool, bool, bool)
record object to storegate
void py_sg_clearProxyPayload(StoreGateSvc *self, SG::DataProxy *)
=============================================================================
Forward declaration.
CxxUtils::RefCountedPtr< T > DataObjectSharedPtr
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
STL namespace.
#define private