![]() |
ATLAS Offline Software
|
The Athena Transient Store API. More...
#include <SGImplSvc.h>
Public Member Functions | |
SGImplSvc (const SGImplSvc &)=delete | |
SGImplSvc & | operator= (const SGImplSvc &)=delete |
DeclareInterfaceID (IProxyDict, 2, 0) | |
DeclareInterfaceID (INamedInterface, 2, 0) | |
Basic Client Interface: data object access | |
StatusCode | retrieve (CLID clid, SG::detail::IteratorBase &cibegin, SG::detail::IteratorBase &ciend) const |
Retrieve all objects of type T: returns an SG::ConstIterator range. More... | |
Advanced Client Interface: data object registration | |
StatusCode | recordAddress (const std::string &skey, IOpaqueAddress *pAddress, bool clearAddressFlag=true) |
Create a proxy object using an IOpaqueAddress and a transient key. More... | |
StatusCode | recordAddress (IOpaqueAddress *pAddress, bool clearAddressFlag=true) |
Create a proxy object using an IOpaqueAddress. More... | |
StatusCode | symLink (const void *p2BRegistered, CLID linkID) |
make a soft link to the object T* already registered More... | |
StatusCode | symLink (const CLID id, const std::string &key, const CLID linkid) |
make a soft link to the object pointed by id/key More... | |
StatusCode | setAlias (CLID clid, const std::string &key, const std::string &aliasKey) |
make an alias to a DataObject (provide data type and old key) More... | |
StatusCode | setAlias (const void *p2BAliased, const std::string &aliasKey) |
make an alias to a DataObject (provide only valid pointer) More... | |
StatusCode | setAlias (SG::DataProxy *proxy, const std::string &aliasKey) |
make an alias to a DataObject (provide valid proxy) More... | |
StatusCode | setConst (const void *pointer) |
prevent downstream clients from modifying the pointed-at dobj More... | |
StatusCode | remove (const void *pObject) |
Remove pObject, will remove its proxy if not reset only. More... | |
StatusCode | removeDataAndProxy (const void *pObject) |
Remove pObject and its proxy no matter what. More... | |
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 Note that the swap is invalidated at event boundaries and/or when somebody clear the store. More... | |
Advanced Client Interface: data object access | |
DataObject * | typeless_retrievePrivateCopy (const CLID clid, const std::string &key) |
CLID | clid (const std::string &key) const |
Retrieve the main CLID of the object recorded in StoreGate with the given "key" WARNING: slow! More... | |
std::vector< CLID > | clids (const std::string &key) const |
Retrieve all the CLID s (including symlinks) of the object recorded in StoreGate with the given "key" WARNING: slow! More... | |
int | typeCount (const CLID &id) const |
Return the number of instances of type T (input CLID) More... | |
bool | contains (const CLID id, const std::string &key) const |
Look up a keyed object in TDS by CLID. More... | |
bool | transientContains (const CLID id, const std::string &key) const |
Look up a transient data object in TDS only by CLID. More... | |
std::string | dump () const |
dump objects in store. More... | |
void | setStoreID (StoreID::type id) |
set store ID. request forwarded to DataStore: More... | |
StoreID::type | storeID () const |
get store ID. request forwarded to DataStore: More... | |
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. More... | |
virtual ::IProxyDict * | hiveProxyDict () override final |
implements IHiveStore interface for compat with Hive More... | |
IOVSvc interface | |
StatusCode | regFcn (const CallBackID &c1, const CallBackID &c2, const IOVSvcCallBackFcn &fcn, bool trigger=false) |
register a callback function(2) with an already registered function(1) More... | |
StatusCode | regFcn (const std::string &toolName, const CallBackID &c2, const IOVSvcCallBackFcn &fcn, bool trigger=false) |
register a callback function(2) with an already registered AlgTool More... | |
virtual SG::DataProxy * | proxy (const void *const pTransient) const override final |
get proxy for a given data object address in memory More... | |
virtual SG::DataProxy * | proxy (const CLID &id) const final |
get default proxy with given id. More... | |
virtual SG::DataProxy * | proxy (const CLID &id, const std::string &key) const override final |
get proxy with given id and key. Returns 0 to flag failure More... | |
virtual SG::DataProxy * | proxy (const CLID &id, const char *key) const final |
get proxy with given id and key. More... | |
virtual StatusCode | addToStore (CLID id, SG::DataProxy *proxy) override final |
Raw addition of a proxy to the store. More... | |
virtual SG::DataProxy * | recordObject (SG::DataObjectSharedPtr< DataObject > obj, const std::string &key, bool allowMods, bool returnExisting) override final |
Record an object in the store. More... | |
virtual SG::DataProxy * | proxy_exact (SG::sgkey_t sgkey) const override final |
Get proxy given a hashed key+clid. More... | |
more proxy dictionary functionality | |
virtual SG::DataProxy * | proxy (const CLID &id, bool checkValid) const |
get default proxy with given id, optionally checking validity. More... | |
virtual SG::DataProxy * | proxy (const CLID &id, const std::string &key, bool checkValid) const |
get proxy with given id and key, optionally checking validity. More... | |
virtual SG::DataProxy * | proxy (const CLID &id, const char *key, bool checkValid) const |
get proxy with given id and key, optionally checking validity. More... | |
virtual std::vector< const SG::DataProxy * > | proxies () const override final |
return the list of all current proxies in store More... | |
std::vector< CLID > | clids () const |
Return all CLIDs in the store. More... | |
SG::DataProxy * | transientProxy (const CLID &id, const std::string &key) const |
get proxy with given id and key. More... | |
DataObject * | accessData (const CLID &id) const |
find proxy and access its data. Returns 0 to flag failure More... | |
DataObject * | accessData (const CLID &id, const std::string &key) const |
find proxy and access its data. Returns 0 to flag failure More... | |
void | setProxyProviderSvc (IProxyProviderSvc *pPPSvc) |
associate ProxyProviderSvc to this store More... | |
IProxyProviderSvc * | proxyProviderSvc () |
Return current ProxyProviderSvc. More... | |
virtual SG::SourceID | sourceID (const std::string &key="EventSelector") const override |
Return the metadata source ID for the current event slot. More... | |
ElementLink remapping | |
void | remap_impl (sgkey_t source, sgkey_t target, off_t index_offset) |
Declare a remapping. More... | |
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. More... | |
Gaudi Standard Service constructors/destructors | |
SGImplSvc (const std::string &name, ISvcLocator *svc) | |
Standard Constructor. More... | |
virtual | ~SGImplSvc () override final |
Standard Destructor. More... | |
Gaudi IIncidentListener implementation | |
virtual void | handle (const Incident &) override final |
triggered by Incident service More... | |
StatusCode | loadEventProxies () |
load proxies at begin event More... | |
String <-> int key conversions. IStringPool implementation | |
typedef IStringPool::sgkey_t | sgkey_t |
virtual sgkey_t | stringToKey (const std::string &str, CLID clid) override final |
Find the key for a string/CLID pair. More... | |
virtual const std::string * | keyToString (sgkey_t key) const override final |
Find the string corresponding to a given key. More... | |
virtual const std::string * | keyToString (sgkey_t key, CLID &clid) const override final |
Find the string and CLID corresponding to a given key. More... | |
virtual void | registerKey (sgkey_t key, const std::string &str, CLID clidid) override final |
Remember an additional mapping from key to string/CLID. More... | |
bool | mergeStringPool (const SGImplSvc &other) |
Merge the string pool from another store into this one. More... | |
Gaudi IService implementation | |
virtual StatusCode | initialize () override final |
Service initialization. More... | |
virtual StatusCode | reinitialize () override final |
Service reinitialization. More... | |
virtual StatusCode | start () override final |
Service start. More... | |
virtual StatusCode | stop () override final |
Service stop. More... | |
virtual StatusCode | finalize () override final |
Service finalization. More... | |
virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvInterface) override final |
static const InterfaceID & | interfaceID () |
Should rather be in ISGImplSvc.h if we had one. More... | |
IHiveStoreMgr implementation | |
typedef std::recursive_mutex | mutex_t |
typedef std::lock_guard< mutex_t > | lock_t |
class | IOVDbSvc |
access clearProxyPayload More... | |
class | IOVSvcTool |
class | SGDeleteAlg |
class | PerfMon::StorePayloadMon |
class | AthenaOutputStream |
access proxyRange() More... | |
class | IOVSvc |
access store() More... | |
class | PileUpMergeSvc |
class | StoreGateSvc |
class | SG::VarHandleBase |
access typeless_record More... | |
class | ActiveStoreSvc |
PyObject * | AthenaInternal::recordObjectToStore (StoreGateSvc *, PyObject *, PyObject *, bool, bool, bool) |
void | AthenaInternal::py_sg_clearProxyPayload (StoreGateSvc *, SG::DataProxy *) |
IClassIDSvc * | m_pCLIDSvc |
IConversionSvc * | m_pDataLoader |
ServiceHandle< IProxyProviderSvc > | m_pPPSHandle |
IProxyProviderSvc * | m_pPPS |
IHistorySvc * | m_pHistorySvc |
SG::DataStore * | m_pStore |
std::list< DataObject * > | m_trash |
The Recycle Bin. More... | |
ServiceHandle< IIncidentSvc > | m_pIncSvc |
property More... | |
bool | m_DumpStore |
Dump Property flag: triggers dump() at EndEvent. More... | |
bool | m_ActivateHistory |
Activate the history service. More... | |
bool | m_DumpArena |
DumpArena Property flag : trigger m_arena->report() at clearStore. More... | |
StringArrayProperty | m_folderNameList |
FolderNameList Property. More... | |
IIOVSvc * | m_pIOVSvc |
bool | m_storeLoaded |
FIXME hack needed by loadEventProxies. More... | |
SG::StringPool | m_stringpool |
SG::RemapImpl * | m_remap_impl |
SG::Arena | m_arena |
Allocation arena to associate with this store. More... | |
int | m_slotNumber |
The Hive slot number for this store, or -1 if this isn't a Hive store. More... | |
int | m_numSlots |
The total number of slots. 1 if this isn't a Hive store. More... | |
std::map< std::thread::id, std::vector< IResetable * > > | m_newBoundHandles |
Keep track of proxies bound since the last call to commitNewDataObjects or clearStore. More... | |
mutex_t | m_mutex |
mutex_t | m_remapMutex |
mutex_t | m_stringPoolMutex |
virtual StatusCode | clearStore (bool forceRemove=false) override final |
clear DataStore contents: called by the event loop mgrs More... | |
virtual void | commitNewDataObjects () override final |
Reset handles added since the last call to commit. More... | |
void | setSlotNumber (int slot, int numSlots) |
Set the Hive slot number for this store. More... | |
virtual void | boundHandle (IResetable *handle) override final |
Tell the store that a proxy has been bound to a handle. More... | |
virtual void | unboundHandle (IResetable *handle) override final |
Tell the store that a handle has been unbound from a proxy. More... | |
virtual StatusCode | createObj (IConverter *cvt, IOpaqueAddress *addr, DataObject *&refpObject) override |
Call converter to create an object, with locking. More... | |
StatusCode | record_HistObj (const CLID &id, const std::string &key, const std::string &store, bool allowMods, bool resetOnly=true) |
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 record More... | |
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 More... | |
StatusCode | typeless_record (DataObject *obj, const std::string &key, const void *const raw_ptr, bool allowMods, bool resetOnly, bool noHist, const std::type_info *tinfo) |
StatusCode | typeless_record (DataObject *obj, const std::string &key, const void *const raw_ptr, bool allowMods, bool resetOnly, bool noHist, const std::type_info *tinfo, SG::DataProxy **proxy_ret, bool noOverwrite) |
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 More... | |
void | releaseObject (const CLID &id, const std::string &key) |
release object held by proxy, if any. More... | |
void | clearProxyPayload (SG::DataProxy *) |
use to reset a proxy (clearing the data object it contains) Unlike DataProxy::reset this method correctly updates SGSvc internals More... | |
SG::DataProxy * | locatePersistent (const SG::TransientAddress *tAddr, bool checkValid=false) const |
StatusCode | proxyRange (const CLID &id, SG::ConstProxyIterator &beg, SG::ConstProxyIterator &end) const |
return a range to all proxies of a given CLID More... | |
SG::DataStore * | store () |
const SG::DataStore * | store () const |
bool | isSymLinked (const CLID &linkID, SG::DataProxy *dp) |
StatusCode | addSymLink (const CLID &linkid, SG::DataProxy *dp) |
StatusCode | addAlias (const std::string &aliasKey, SG::DataProxy *dp) |
std::string | createKey (const CLID &dataID) |
creates a key internally if none specified by client More... | |
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 More... | |
void | recycle (DataObject *pBadDObj) |
put a bad (unrecordable) dobj away More... | |
void | emptyTrash () |
throw away bad objects More... | |
bool | bindHandleToProxy (const CLID &id, const std::string &key, IResetable *ir, SG::DataProxy *&dp) |
name says it all More... | |
bool | bindHandleToProxyAndRegister (const CLID &id, const std::string &key, IResetable *ir, SG::DataProxy *&dp) |
Also do registration with IOVSvc. More... | |
bool | bindHandleToProxyAndRegister (const CLID &id, const std::string &key, IResetable *ir, SG::DataProxy *&dp, const CallBackID &c, const IOVSvcCallBackFcn &fcn, bool trigger) |
StatusCode | removeProxy (SG::DataProxy *proxy, const void *pTrans, bool forceRemove=false) |
remove proxy from store, unless it is reset only. More... | |
StatusCode | t2pRegister (const void *const pTrans, SG::DataProxy *const pPers) |
forwarded to DataStore More... | |
void | t2pRemove (const void *const pTrans) |
forwarded to DataStore More... | |
void | msg_update_handler (Gaudi::Details::PropertyBase &outputLevel) |
callback for output level property More... | |
bool | associateAux_impl (SG::AuxVectorBase *ptr, const std::string &key, CLID auxclid) const |
bool | associateAux_impl (SG::AuxElement *ptr, const std::string &key, CLID auxclid) const |
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. More... | |
void | makeCurrent () |
The current store is becoming the active store. More... | |
IIOVSvc * | getIIOVSvc () |
get the IOVSvc "just in time" (breaks recursion at initialize) More... | |
The Athena Transient Store API.
Dump | property (default false): set to call dump() at EndEvent |
FolderNameList | property (default ""): data folders to be created in this store |
Definition at line 111 of file SGImplSvc.h.
|
private |
Definition at line 737 of file SGImplSvc.h.
|
private |
Definition at line 736 of file SGImplSvc.h.
Definition at line 358 of file SGImplSvc.h.
SGImplSvc::SGImplSvc | ( | const std::string & | name, |
ISvcLocator * | svc | ||
) |
|
finaloverridevirtual |
|
private |
Definition at line 730 of file SGImplSvc.cxx.
|
private |
|
private |
Definition at line 650 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Raw addition of a proxy to the store.
id | CLID of object being added. |
proxy | proxy to add. |
Implements IProxyDict.
Definition at line 836 of file SGImplSvc.cxx.
|
private |
Definition at line 1959 of file SGImplSvc.cxx.
|
private |
Definition at line 1924 of file SGImplSvc.cxx.
|
private |
name says it all
Definition at line 1398 of file SGImplSvc.cxx.
|
private |
|
private |
Definition at line 1444 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Tell the store that a proxy has been bound to a handle.
proxy | The proxy that was bound. The default implementation does nothing. |
Reimplemented from IProxyDict.
Definition at line 1800 of file SGImplSvc.cxx.
|
private |
use to reset a proxy (clearing the data object it contains) Unlike DataProxy::reset this method correctly updates SGSvc internals
Definition at line 1606 of file SGImplSvc.cxx.
|
finaloverridevirtual |
clear DataStore contents: called by the event loop mgrs
forceRemove | if true remove proxies ignoring their resetOnly flag |
Implements IHiveStoreMgr.
Definition at line 277 of file SGImplSvc.cxx.
Retrieve the main CLID
of the object recorded in StoreGate
with the given "key" WARNING: slow!
Definition at line 1685 of file SGImplSvc.cxx.
std::vector< CLID > SGImplSvc::clids | ( | ) | const |
Retrieve all the CLID
s (including symlinks) of the object recorded in StoreGate
with the given "key" WARNING: slow!
Definition at line 1701 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Reset handles added since the last call to commit.
Implements IHiveStoreMgr.
Definition at line 1782 of file SGImplSvc.cxx.
Look up a keyed object in TDS by CLID.
returns false if object not available in TDS or persistent stores Usage: if (!p_store->contains(FooID, "fooKey")) { ... }
Definition at line 750 of file SGImplSvc.cxx.
|
overridevirtual |
Call converter to create an object, with locking.
cvt | The converter to call. |
addr | Opaque address information for the object to create. |
refpObject | Reference to location of the pointer of the created object. |
This calls the createObj
method on cvt
to create the referenced transient object, locking the store during the call.
Reimplemented from IProxyDict.
Definition at line 1843 of file SGImplSvc.cxx.
|
inherited |
|
inherited |
string SGImplSvc::dump | ( | ) | const |
dump objects in store.
request forwarded to DataStore this is triggered at EndEvent setting the Dump property to true
Definition at line 569 of file SGImplSvc.cxx.
|
private |
|
finaloverridevirtual |
|
private |
get the IOVSvc "just in time" (breaks recursion at initialize)
Definition at line 234 of file SGImplSvc.cxx.
|
finaloverridevirtual |
|
inlinefinaloverridevirtual |
implements IHiveStore interface for compat with Hive
Reimplemented from IProxyDict.
Definition at line 232 of file SGImplSvc.h.
|
finaloverridevirtual |
|
static |
Should rather be in ISGImplSvc.h if we had one.
Definition at line 345 of file SGImplSvc.cxx.
|
private |
Definition at line 539 of file SGImplSvc.cxx.
void SGImplSvc::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.
usage: p_store->keys(CLID, vkeys, optionalFlags);
id | CLID for which we are requesting list of keys |
vkeys | will be filled with the (possibly empty) list of keys |
includeAlias | (default false) add alias keys as well |
onlyValid | (default true) add only keys of valid dobjs |
Definition at line 530 of file SGImplSvc.cxx.
Find the string corresponding to a given key.
key | The key to look up. |
stringToKey()
or registerKey()
. Implements IStringPool.
Definition at line 1514 of file SGImplSvc.cxx.
Find the string and CLID corresponding to a given key.
key | The key to look up. |
clid[out] | The found CLID. |
stringToKey()
or registerKey()
. Implements IStringPool.
Definition at line 1530 of file SGImplSvc.cxx.
StatusCode SGImplSvc::loadEventProxies | ( | ) |
|
private |
|
private |
The current store is becoming the active store.
Switch the allocation arena, if needed. Only intended to be called by ActiveStoreSvc.
Switch the allocation arena, if needed, and call SG::CurrentEventStore::setStore.
Definition at line 1824 of file SGImplSvc.cxx.
Merge the string pool from another store into this one.
other | The other store. |
In case of collisions, the colliding entries are skipped, and false is returned. If no collisions, then true is returned.
Definition at line 1572 of file SGImplSvc.cxx.
|
private |
|
finaloverridevirtual |
return the list of all current proxies in store
Implements IProxyDict.
Definition at line 976 of file SGImplSvc.cxx.
get default proxy with given id.
Returns 0 to flag failure Deprecated for the event store.
Definition at line 777 of file SGImplSvc.cxx.
get default proxy with given id, optionally checking validity.
Check if it is valid
Definition at line 783 of file SGImplSvc.cxx.
|
inlinefinalvirtual |
get proxy with given id and key.
Returns 0 to flag failure (overload to prevent a char* to be interpreted as a bool.)
Definition at line 268 of file SGImplSvc.h.
|
inlinevirtual |
get proxy with given id and key, optionally checking validity.
Definition at line 320 of file SGImplSvc.h.
|
finaloverridevirtual |
get proxy with given id and key. Returns 0 to flag failure
Implements IProxyDict.
Definition at line 807 of file SGImplSvc.cxx.
|
virtual |
get proxy with given id and key, optionally checking validity.
Definition at line 813 of file SGImplSvc.cxx.
get proxy for a given data object address in memory
Implements IProxyDict.
Definition at line 768 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Get proxy given a hashed key+clid.
Find an exact match; no handling of aliases, etc. Returns 0 to flag failure.
Implements IProxyDict.
Definition at line 953 of file SGImplSvc.cxx.
IProxyProviderSvc* SGImplSvc::proxyProviderSvc | ( | ) |
Return current ProxyProviderSvc.
|
private |
|
finaloverridevirtual |
Definition at line 355 of file SGImplSvc.cxx.
|
private |
Definition at line 1464 of file SGImplSvc.cxx.
|
private |
real recording of an object with a key, allow possibility of specifying const-access
Definition at line 1140 of file SGImplSvc.cxx.
StatusCode SGImplSvc::recordAddress | ( | const std::string & | skey, |
IOpaqueAddress * | pAddress, | ||
bool | clearAddressFlag = true |
||
) |
Create a proxy object using an IOpaqueAddress and a transient key.
Definition at line 383 of file SGImplSvc.cxx.
StatusCode SGImplSvc::recordAddress | ( | IOpaqueAddress * | pAddress, |
bool | clearAddressFlag = true |
||
) |
|
finaloverridevirtual |
Record an object in the store.
obj | The data object to store. |
key | The key as which it should be stored. |
allowMods | If false, the object will be recorded as const. |
returnExisting | If true, return proxy if this key already exists. If the object has been recorded under a different key, then make an alias. If the object has been recorded under a different clid, then make a link. |
Full-blown record. obj
should usually be something deriving from SG::DataBucket
.
Returns the proxy for the recorded object; nullptr on failure. If the requested CLID/key combination already exists in the store, the behavior is controlled by returnExisting
. If true, then the existing proxy is returned; otherwise, nullptr is returned. In either case, obj
is destroyed.
Implements IProxyDict.
Definition at line 863 of file SGImplSvc.cxx.
|
private |
put a bad (unrecordable) dobj away
Definition at line 1380 of file SGImplSvc.cxx.
StatusCode SGImplSvc::regFcn | ( | const CallBackID & | c1, |
const CallBackID & | c2, | ||
const IOVSvcCallBackFcn & | fcn, | ||
bool | trigger = false |
||
) |
register a callback function(2) with an already registered function(1)
Definition at line 546 of file SGImplSvc.cxx.
StatusCode SGImplSvc::regFcn | ( | const std::string & | toolName, |
const CallBackID & | c2, | ||
const IOVSvcCallBackFcn & | fcn, | ||
bool | trigger = false |
||
) |
register a callback function(2) with an already registered AlgTool
Definition at line 557 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Remember an additional mapping from key to string/CLID.
key | The key to enter. |
str | The string to enter. |
clid | The CLID associated with the string. |
key
already corresponds to a different string.This registers an additional mapping from a key to a string; it can be found later through lookup()
on the string. Logs an error if key
already corresponds to a different string.
Implements IStringPool.
Definition at line 1549 of file SGImplSvc.cxx.
|
finaloverridevirtual |
release object held by proxy, if any.
Gives up ownership (somebody else must take charge)
Definition at line 1589 of file SGImplSvc.cxx.
Declare a remapping.
source Key hash of the container being remapped.
target Key hash of the container being remapped to.
index_offset Amount by which the index should be adjusted between the two containers.
Definition at line 1634 of file SGImplSvc.cxx.
StatusCode SGImplSvc::remove | ( | const void * | pObject | ) |
Remove pObject, will remove its proxy if not reset only.
Definition at line 1363 of file SGImplSvc.cxx.
StatusCode SGImplSvc::removeDataAndProxy | ( | const void * | pObject | ) |
|
private |
remove proxy from store, unless it is reset only.
provide pTrans!=0 (must match proxy...) to save time
forceRemove | remove the proxy no matter what |
Definition at line 1281 of file SGImplSvc.cxx.
StatusCode SGImplSvc::retrieve | ( | CLID | clid, |
SG::detail::IteratorBase & | cibegin, | ||
SG::detail::IteratorBase & | ciend | ||
) | const |
Retrieve all objects of type T: returns an SG::ConstIterator range.
Definition at line 1893 of file SGImplSvc.cxx.
make an alias to a DataObject (provide data type and old key)
Definition at line 697 of file SGImplSvc.cxx.
make an alias to a DataObject (provide only valid pointer)
Definition at line 670 of file SGImplSvc.cxx.
StatusCode SGImplSvc::setAlias | ( | SG::DataProxy * | proxy, |
const std::string & | aliasKey | ||
) |
make an alias to a DataObject (provide valid proxy)
Definition at line 724 of file SGImplSvc.cxx.
StatusCode SGImplSvc::setConst | ( | const void * | pointer | ) |
prevent downstream clients from modifying the pointed-at dobj
Definition at line 1343 of file SGImplSvc.cxx.
void SGImplSvc::setProxyProviderSvc | ( | IProxyProviderSvc * | pPPSvc | ) |
associate ProxyProviderSvc to this store
void SGImplSvc::setSlotNumber | ( | int | slot, |
int | numSlots | ||
) |
Set the Hive slot number for this store.
slot | The slot number. -1 means that this isn't a Hive store. |
numSlots | The total number of slots. Should be 1 for the non-Hive case. |
Definition at line 965 of file SGImplSvc.cxx.
void SGImplSvc::setStoreID | ( | StoreID::type | id | ) |
set store ID. request forwarded to DataStore:
set store id in DataStore:
Definition at line 516 of file SGImplSvc.cxx.
|
private |
|
overridevirtual |
Return the metadata source ID for the current event slot.
key | SG key of the DataHeader to query. Returns an empty string if no source has been set. |
The default version always returns an empty string.
Returns an empty string if no source has been set.
The default version always returns an empty string.
Reimplemented from IProxyDict.
Definition at line 1875 of file SGImplSvc.cxx.
|
finaloverridevirtual |
|
finaloverridevirtual |
Service stop.
Definition at line 216 of file SGImplSvc.cxx.
|
private |
Definition at line 612 of file SGImplSvc.cxx.
Definition at line 618 of file SGImplSvc.cxx.
StoreID::type SGImplSvc::storeID | ( | ) | const |
|
finaloverridevirtual |
Find the key for a string/CLID pair.
str | The string to look up. |
clid | The CLID associated with the string. |
Implements IStringPool.
Definition at line 1500 of file SGImplSvc.cxx.
|
private |
forwarded to DataStore
Definition at line 1315 of file SGImplSvc.cxx.
forwarded to DataStore
Definition at line 1322 of file SGImplSvc.cxx.
Look up a transient data object in TDS only by CLID.
returns false if object not available in TDS
Definition at line 759 of file SGImplSvc.cxx.
bool SGImplSvc::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 Note that the swap is invalidated at event boundaries and/or when somebody clear the store.
Definition at line 1031 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Test to see if the target of an ElementLink has moved.
sgkey_in | Original hashed key of the EL. |
index_in | Original index of the EL. |
sgkey_out[out] | New hashed key for the EL. |
index_out[out] | New index for the EL. |
Reimplemented from IProxyDict.
Definition at line 1654 of file SGImplSvc.cxx.
|
private |
same as typeless_record, allows to overwrite an object in memory or on disk
Definition at line 1105 of file SGImplSvc.cxx.
|
private |
Definition at line 1067 of file SGImplSvc.cxx.
|
private |
Definition at line 1078 of file SGImplSvc.cxx.
|
private |
type-less recording of an object with a key, allow possibility of specifying const-access and history record
Definition at line 1057 of file SGImplSvc.cxx.
Definition at line 1669 of file SGImplSvc.cxx.
|
finaloverridevirtual |
Tell the store that a handle has been unbound from a proxy.
handle | The handle that was unbound. The default implementation does nothing. |
Reimplemented from IProxyDict.
Definition at line 1812 of file SGImplSvc.cxx.
|
friend |
Definition at line 684 of file SGImplSvc.h.
|
friend |
|
friend |
|
friend |
access proxyRange()
Definition at line 608 of file SGImplSvc.h.
|
friend |
access clearProxyPayload
Definition at line 592 of file SGImplSvc.h.
|
friend |
access store()
Definition at line 615 of file SGImplSvc.h.
|
friend |
Definition at line 593 of file SGImplSvc.h.
|
friend |
Definition at line 595 of file SGImplSvc.h.
|
friend |
Definition at line 616 of file SGImplSvc.h.
|
friend |
access typeless_record
Definition at line 619 of file SGImplSvc.h.
|
friend |
Definition at line 594 of file SGImplSvc.h.
|
friend |
Definition at line 617 of file SGImplSvc.h.
|
private |
Activate the history service.
Definition at line 705 of file SGImplSvc.h.
|
private |
Allocation arena to associate with this store.
Definition at line 722 of file SGImplSvc.h.
|
private |
DumpArena Property flag : trigger m_arena->report() at clearStore.
Definition at line 706 of file SGImplSvc.h.
|
private |
Dump Property flag: triggers dump() at EndEvent.
Definition at line 704 of file SGImplSvc.h.
|
private |
FolderNameList Property.
Definition at line 709 of file SGImplSvc.h.
|
mutableprivate |
Definition at line 738 of file SGImplSvc.h.
|
private |
Keep track of proxies bound since the last call to commitNewDataObjects or clearStore.
Has to be done per-thread. We can't use thread_specific_ptr because we want to be able to clear the vectors for all threads in clearStore().
Definition at line 734 of file SGImplSvc.h.
|
private |
The total number of slots. 1 if this isn't a Hive store.
Definition at line 728 of file SGImplSvc.h.
|
private |
Definition at line 690 of file SGImplSvc.h.
|
private |
Definition at line 691 of file SGImplSvc.h.
|
private |
Definition at line 698 of file SGImplSvc.h.
|
private |
property
Definition at line 703 of file SGImplSvc.h.
|
private |
Definition at line 713 of file SGImplSvc.h.
|
private |
Definition at line 696 of file SGImplSvc.h.
|
private |
Definition at line 693 of file SGImplSvc.h.
|
private |
Definition at line 700 of file SGImplSvc.h.
|
private |
Definition at line 719 of file SGImplSvc.h.
|
mutableprivate |
Definition at line 739 of file SGImplSvc.h.
|
private |
The Hive slot number for this store, or -1 if this isn't a Hive store.
Definition at line 725 of file SGImplSvc.h.
|
private |
FIXME hack needed by loadEventProxies.
Definition at line 715 of file SGImplSvc.h.
|
private |
Definition at line 717 of file SGImplSvc.h.
|
mutableprivate |
Definition at line 740 of file SGImplSvc.h.
|
private |
The Recycle Bin.
Definition at line 701 of file SGImplSvc.h.