![]() |
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, xAODPrivate::HolderBucket, 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, xAODPrivate::HolderBucket, 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, xAODPrivate::HolderBucket, 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, xAODPrivate::HolderBucket, 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, xAODPrivate::HolderBucket, 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, xAODPrivate::HolderBucket, Athena::DataBucketBranch, SG::DataBucket< T >, and BareDataBucket.
1.8.18