|
ATLAS Offline Software
|
Go to the documentation of this file.
24 #include "GaudiKernel/ThreadLocalContext.h"
187 CLID clid = CLID_NULL;
188 const std::string*
key =
nullptr;
194 if (link_clid != CLID_NULL && clid != link_clid)
211 else if (link_clid != CLID_NULL &&
233 static const std::string
dummy;
335 if (s_inputRenameMap) {
424 size_t index_s =
index;
455 size_t index_s =
index;
478 size_t index_out = 0;
516 const std::size_t persIdx = dec->
index(
index );
526 if (
index != persIdx) {
546 CLID clid = CLID_NULL;
571 (
reinterpret_cast<unsigned long> (
m_proxy) & ~1UL);
573 if (
proxy == 0 && !nothrow)
616 s_inputRenameMap = map;
Wrapper object controlled by RCU synchonization.
void storeObjpointer(const_pointer_t p)
Store a direct pointer to an object.
pointer_t objpointer() const
Return a pointer to the object we're pointing at directly.
virtual SG::DataProxy * proxy(const CLID &id, const std::string &key) const =0
Get proxy with given id and key.
bool isConst() const
Check if it is a const object.
sgkey_t sgkey() const
< Get the primary (hashed) SG key.
A non-templated base class for DataBucket, allows to access the transient object address as a void*.
virtual sgkey_t stringToKey(const std::string &str, CLID clid)=0
Find the key for a string/CLID pair.
virtual StatusCode addToStore(CLID id, SG::DataProxy *proxy)=0
Add a new proxy to the store.
Hold thinning decisions for one container.
static bool thin(sgkey_t &sgkey, size_t &index, const SG::ThinningCache *thinningCache)
Adjust for thinning, with explicitly provided thinning cache.
Manage DataProxy reference in ElementLink/DataLink.
Exception — The object referenced by a DataLink / ElementLink is not registered in SG.
static IProxyDict * store()
Fetch the current store.
bool isObjpointer() const
Test to see if we're pointing directly at an object.
Hold thinning decisions for one container.
Exception – Tried to retrieve const storable as a non-const pointer.
SG::DataProxy * proxy1(bool nothrow) const
Helper for proxy(), for the case of a direct object pointer.
void * storableBase(castfn_t *castfn, CLID clid, bool isConst) const
Return a pointer to the currently-referenced object.
void toTransient(sgkey_t sgkey, IProxyDict *sg=0)
Finish initialization after link has been read.
virtual SG::DataProxy * proxy_exact(SG::sgkey_t sgkey) const =0
Get proxy given a hashed key+clid.
void toPersistentNoRemap(sgkey_t &sgkey)
Prepare this link for writing.
virtual bool tryELRemap(sgkey_t sgkey_in, size_t index_in, sgkey_t &sgkey_out, size_t &index_out)
Test to see if the target of an ElementLink has moved.
Manage DataProxy reference in ElementLink/DataLink.
Helper to read data from a RCUObject.
IProxyDict * store()
Return the store of which we're a part.
static const std::size_t RemovedIdx
Flag used to show that an index has been thinned away.
uint32_t CLID
The Class ID type.
void setNSlotsHiveMgrName ATLAS_NOT_THREAD_SAFE(const std::string &s)
Allow setting the name of the whiteboard service.
CLID clID() const
Retrieve clid.
sgkey_t toIdentifiedObject(const ID_type &dataID, CLID link_clid, IProxyDict *sg)
Set the link to an object given by a string key.
DATA * DataProxy_cast(DataProxy *proxy)
cast the proxy into the concrete data object it proxies
IProxyDict * source() const
Return the data source for this reference.
Helpers for checking error return status codes and reporting errors.
Exception — Attempt to dereference invalid DataLink / ElementLink ".
virtual const name_type & name() const override final
Retrieve data object key == string.
Exception — Attempt to set DataLink / ElementLink with CLID <clid> to object with CLID <clid>.
bool tryRemap(sgkey_t &sgkey, size_t &index)
Test to see if the link has been remapped.
Exceptions that can be thrown from AthLinks.
bool operator==(const DataProxyHolder &other) const
Compare for equality.
size_t index(size_t ndxOrig) const
Return the index corresponding to ndxOrig after thinning.
const ThinningDecisionBase * thinning(const std::string &key) const
Return thinning for key.
void throwInvalidLink(sgkey_t sgkey) const
Throw a ExcInvalidLink exception for this link.
const void * const_pointer_t
bool transientID(CLID id) const
return the list of transient IDs (primary or symLinked):
IProxyDict * source1()
Return the data source for this reference.
virtual const std::string * keyToString(sgkey_t key) const =0
Find the string corresponding to a given key.
void setSGKey(sgkey_t sgkey)
check if it is a transient ID (primary or symLinked):
IStringPool::sgkey_t sgkey_t
Type of hashed keys.
#define ATLAS_THREAD_SAFE
sgkey_t toStorableObject(const_pointer_t obj, CLID link_clid, IProxyDict *sg)
Set the link to an object given by a pointer.
const ID_type & dataID() const
Return the SG key that we reference, as a string.
Define macros for attributes used to control the static checker.
Cache thinning decisions for converters.
bool toPersistent(sgkey_t &sgkey, uint64_t &index)
Prepare this link for writing.
SG::DataProxy * proxy(bool nothrow=false) const
Return the DataProxy for this link.
SG::DataProxy * m_proxy
The DataProxy referring to our object, if the LSB is clear; pointer to the object which we're referen...
std::string ID_type
Type of string keys.