![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef ATHENAKERNEL_DATABUCKET_H
8 #define ATHENAKERNEL_DATABUCKET_H
14 #include "GaudiKernel/ClassID.h"
16 #include <type_traits>
26 class IRegisterTransient;
27 class CopyConversionBase;
54 return const_cast<T_nc*
>(
m_ptr);
60 virtual const std::type_info&
tinfo()
const override
73 operator T*() {
return ptr(); }
74 operator const T*()
const {
return cptr(); }
86 bool isConst =
true)
override;
99 bool isConst =
true)
override;
114 const std::type_info&
tinfo,
116 bool isConst =
true)
override;
160 typedef std::pair<const CopyConversionBase*, void*>
ent_t;
170 #endif // ATHENAKERNEL_DATABUCKET_H
Interface for registering a transient object in t2p map.
std::pair< const CopyConversionBase *, void * > ent_t
Objects made by copy conversion.
char data[hepevt_bytes_allocation_ATLAS]
DataBucket & operator=(const DataBucket &)
virtual void * cast(CLID clid, const std::type_info &tinfo, SG::IRegisterTransient *irt=0, bool isConst=true) override
Return the contents of the DataBucket, converted to type given by clid.
virtual void * object() override
DataBucket(const DataBucket &)
DataBucket(SG::DataObjectSharedPtr< T > data)
std::vector< ent_t > vec_t
virtual void * cast(CLID clid, IRegisterTransient *irt=0, bool isConst=true) override
Return the contents of the DataBucket, converted to type given by clid.
A non-templated base class for DataBucket, allows to access the transient object address as a void*.
virtual void relinquish() override
Give up ownership of the DataBucket contents.
void * tryStaticConversion(const std::type_info &tinfo)
Try a conversion using static SG_BASES information.
virtual const std::type_info & tinfo() const override
Return the type_info for the stored object.
void * tryStaticConversion(CLID clid)
Try a conversion using static SG_BASES information.
DataBucket(std::unique_ptr< U > data)
Smart pointer to manage DataObject reference counts.
uint32_t CLID
The Class ID type.
virtual const CLID & clID() const override
Smart pointer to manage DataObject reference counts.
static const CLID & classID()
virtual void * cast(const std::type_info &tinfo, IRegisterTransient *irt=0, bool isConst=true) override
Return the contents of the DataBucket, converted to type given by std::type_info.
virtual void lock() override
If the held object derives from ILockable, call lock() on it.