ATLAS Offline Software
|
A non-templated base class for DataBucket, allows to access the transient object address as a void*. More...
#include <DataBucketBase.h>
Public Member Functions | |
DataBucketBase () | |
virtual | ~DataBucketBase () |
virtual void * | object ()=0 |
virtual const std::type_info & | tinfo () const =0 |
Return the type_info for the stored object. More... | |
template<class T > | |
T * | cast (SG::IRegisterTransient *irt=0, bool isConst=true) |
Return the contents of the DataBucket , converted to type T. More... | |
virtual void * | cast (CLID clid, SG::IRegisterTransient *irt=0, bool isConst=true)=0 |
Return the contents of the DataBucket , converted to type given by clid. More... | |
virtual void * | cast (const std::type_info &tinfo, SG::IRegisterTransient *irt=0, bool isConst=true)=0 |
Return the contents of the DataBucket , converted to type given by std::type_info. More... | |
virtual void * | cast (CLID clid, const std::type_info &tinfo, SG::IRegisterTransient *irt=0, bool isConst=true) |
Return the contents of the DataBucket , converted to type given by clid. More... | |
virtual void | relinquish ()=0 |
Give up ownership of the DataBucket contents. More... | |
virtual void | lock ()=0 |
If the held object derives from ILockable , call lock() on it. More... | |
A non-templated base class for DataBucket, allows to access the transient object address as a void*.
Definition at line 23 of file DataBucketBase.h.
|
inline |
Definition at line 28 of file DataBucketBase.h.
|
inlinevirtual |
Definition at line 29 of file DataBucketBase.h.
|
virtual |
Return the contents of the DataBucket
, converted to type given by clid.
Note that only derived->base conversions are allowed here.
clid | The class ID to which to convert. |
tinfo | The std::type_info of the type to which to convert. |
irt | To be called if we make a new instance. |
isConst | True if the object being converted is regarded as const. |
This allows the callee to choose whether to use clid or tinfo. By default, this uses type_info.
Reimplemented in xAODPrivate::THolderBucket, SG::DVLDataBucket< T >, SG::DVLDataBucket< DV >, SG::DataBucket< T >, SG::DataBucket< DV >, and SG::MetaContDataBucket< T >.
|
pure virtual |
Return the contents of the DataBucket
, converted to type given by clid.
Note that only derived->base conversions are allowed here.
clid | The class ID to which to convert. |
irt | To be called if we make a new instance. |
isConst | True if the object being converted is regarded as const. |
Implemented in SG::SymlinkDataObject, xAODPrivate::THolderBucket, Athena::DataBucketBranch, BareDataBucket, SG::PyDataBucket, SG::DVLDataBucket< T >, SG::DVLDataBucket< DV >, SG::DataBucket< T >, SG::DataBucket< DV >, and SG::MetaContDataBucket< T >.
|
pure virtual |
Return the contents of the DataBucket
, converted to type given by std::type_info.
Note that only derived->base conversions are allowed here.
tinfo | The std::type_info of the type to which to convert. |
irt | To be called if we make a new instance. |
isConst | True if the object being converted is regarded as const. |
Implemented in Athena::DataBucketBranch, BareDataBucket, xAODPrivate::THolderBucket, SG::PyDataBucket, SG::DVLDataBucket< T >, SG::DVLDataBucket< DV >, SG::DataBucket< T >, SG::DataBucket< DV >, SG::MetaContDataBucket< T >, and SG::SymlinkDataObject.
T* DataBucketBase::cast | ( | SG::IRegisterTransient * | irt = 0 , |
bool | isConst = true |
||
) |
Return the contents of the DataBucket
, converted to type T.
Note that only derived->base conversions are allowed here. T must have a valid Class ID for this to work.
irt | To be called if we make a new instance. |
isConst | True if the object being converted is regarded as const. |
|
pure virtual |
If the held object derives from ILockable
, call lock()
on it.
Implemented in SG::PyDataBucket, xAODPrivate::THolderBucket, SG::DataBucket< T >, SG::DataBucket< DV >, SG::SymlinkDataObject, Athena::DataBucketBranch, and BareDataBucket.
|
pure virtual |
|
pure virtual |
Give up ownership of the DataBucket
contents.
This leaks the contents and it is useful mainly for error handling.
Implemented in SG::PyDataBucket, xAODPrivate::THolderBucket, SG::DataBucket< T >, SG::DataBucket< DV >, SG::SymlinkDataObject, Athena::DataBucketBranch, and BareDataBucket.
|
pure virtual |
Return the type_info
for the stored object.
Implemented in SG::PyDataBucket, SG::DVLDataBucket< T >, SG::SymlinkDataObject, xAODPrivate::THolderBucket, Athena::DataBucketBranch, SG::DataBucket< T >, and BareDataBucket.