|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHLINKS_DATAPROXYHOLDER_H
15 #define ATHLINKS_DATAPROXYHOLDER_H
25 #include <unordered_map>
95 template <
class FROM_STORABLE,
class TO_STORABLE>
452 #endif // not ATHLINKS_DATAPROXYHOLDER_H
void storeObjpointer(const_pointer_t p)
Store a direct pointer to an object.
read-copy-update (RCU) style synchronization for Athena.
pointer_t objpointer() const
Return a pointer to the object we're pointing at directly.
DataProxyHolder(const DataProxyHolder &other, FROM_STORABLE *, TO_STORABLE *)
Constructor from a holder referencing a different type.
static bool thin(sgkey_t &sgkey, size_t &index, const SG::ThinningCache *thinningCache)
Adjust for thinning, with explicitly provided thinning cache.
DataProxyHolder()
Default constructor.
bool isObjpointer() const
Test to see if we're pointing directly at an object.
SG::DataProxy * proxy1(bool nothrow) const
Helper for proxy(), for the case of a direct object pointer.
SG::sgkey_t sgkey_t
Type of hashed keys.
void * storableBase(castfn_t *castfn, CLID clid, bool isConst) const
Return a pointer to the currently-referenced object.
DataProxyHolder(const DataProxyHolder &)=default
void toTransient(sgkey_t sgkey, IProxyDict *sg=0)
Finish initialization after link has been read.
DataProxyHolder & operator=(const DataProxyHolder &)=default
void toPersistentNoRemap(sgkey_t &sgkey)
Prepare this link for writing.
bool toPersistent(sgkey_t &sgkey, const T &)
Prepare this link for writing.
Abstract interface for looking up strings/CLIDs in a pool.
Manage DataProxy reference in ElementLink/DataLink.
std::string ID_type
Type of string keys.
uint32_t CLID
The Class ID type.
sgkey_t toIdentifiedObject(const ID_type &dataID, CLID link_clid, IProxyDict *sg)
Set the link to an object given by a string key.
IProxyDict * source() const
Return the data source for this reference.
void * castfn_t(SG::DataProxy *)
Function casting from a SG::DataProxy to a pointer.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
bool isDefault() const
Test to see if this is a null link.
bool tryRemap(sgkey_t &sgkey, size_t &index)
Test to see if the link has been remapped.
void clear()
Reset the link to null.
bool operator==(const DataProxyHolder &other) const
Compare for equality.
Define the type used for hashed StoreGate key+CLID pairs.
void throwInvalidLink(sgkey_t sgkey) const
Throw a ExcInvalidLink exception for this link.
IProxyDict * source1()
Return the data source for this reference.
const void * const_pointer_t
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.
void * pointer_t
Generic pointer type.
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...