ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
SG::SymlinkDataObject Class Reference

Helper for symLink_impl. More...

Inheritance diagram for SG::SymlinkDataObject:
Collaboration diagram for SG::SymlinkDataObject:

Public Member Functions

 SymlinkDataObject (CLID clid, void *obj)
 
virtual const CLIDclID () const override
 
virtual void * object () override
 
virtual const std::type_info & tinfo () const override
 Return the type_info for the stored object. More...
 
virtual void * cast (CLID, SG::IRegisterTransient *, bool) override
 Return the contents of the DataBucket, converted to type given by clid. More...
 
virtual void * cast (const std::type_info &, SG::IRegisterTransient *, bool) override
 Return the contents of the DataBucket, converted to type given by std::type_info. More...
 
virtual void relinquish () override
 Give up ownership of the DataBucket contents. More...
 
virtual void lock () override
 If the held object derives from ILockable, call lock() on it. 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...
 
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, 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...
 

Private Attributes

CLID m_clid
 
void * m_obj
 

Detailed Description

Helper for symLink_impl.

A simple DataBucket that holds an arbitrary pointer/clid. We stub out everything else that we don't use.

Definition at line 87 of file StoreGate/src/VarHandleBase.cxx.

Constructor & Destructor Documentation

◆ SymlinkDataObject()

SG::SymlinkDataObject::SymlinkDataObject ( CLID  clid,
void *  obj 
)
inline

Definition at line 91 of file StoreGate/src/VarHandleBase.cxx.

91 : m_clid (clid), m_obj (obj) {}

Member Function Documentation

◆ cast() [1/8]

virtual void* DataBucketBase::cast ( CLID  clid,
const std::type_info &  tinfo,
SG::IRegisterTransient irt = 0,
bool  isConst = true 
)
virtualinherited

Return the contents of the DataBucket, converted to type given by clid.

Note that only derived->base conversions are allowed here.

Parameters
clidThe class ID to which to convert.
tinfoThe std::type_info of the type to which to convert.
irtTo be called if we make a new instance.
isConstTrue 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 >.

◆ cast() [2/8]

virtual void* DataBucketBase::cast

Return the contents of the DataBucket, converted to type given by clid.

Note that only derived->base conversions are allowed here.

Parameters
clidThe class ID to which to convert.
tinfoThe std::type_info of the type to which to convert.
irtTo be called if we make a new instance.
isConstTrue 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.

◆ cast() [3/8]

virtual void* DataBucketBase::cast

Return the contents of the DataBucket, converted to type given by clid.

Note that only derived->base conversions are allowed here.

Parameters
clidThe class ID to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

◆ cast() [4/8]

virtual void* SG::SymlinkDataObject::cast ( CLID  clid,
SG::IRegisterTransient irt,
bool  isConst 
)
inlineoverridevirtual

Return the contents of the DataBucket, converted to type given by clid.

Note that only derived->base conversions are allowed here.

Parameters
clidThe class ID to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

Implements DataBucketBase.

Definition at line 96 of file StoreGate/src/VarHandleBase.cxx.

96 { std::abort(); }

◆ cast() [5/8]

virtual void* SG::SymlinkDataObject::cast ( const std::type_info &  tinfo,
SG::IRegisterTransient irt,
bool  isConst 
)
inlineoverridevirtual

Return the contents of the DataBucket, converted to type given by std::type_info.

Note that only derived->base conversions are allowed here.

Parameters
tinfoThe std::type_info of the type to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

Implements DataBucketBase.

Definition at line 97 of file StoreGate/src/VarHandleBase.cxx.

97 { std::abort(); }

◆ cast() [6/8]

virtual void* DataBucketBase::cast

Return the contents of the DataBucket, converted to type given by std::type_info.

Note that only derived->base conversions are allowed here.

Parameters
tinfoThe std::type_info of the type to which to convert.
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

◆ cast() [7/8]

template<class T >
T* DataBucketBase::cast ( SG::IRegisterTransient irt = 0,
bool  isConst = true 
)
inherited

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.

Parameters
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

◆ cast() [8/8]

template<class T >
T* DataBucketBase::cast ( class T  )

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.

Parameters
irtTo be called if we make a new instance.
isConstTrue if the object being converted is regarded as const.

◆ clID()

virtual const CLID& SG::SymlinkDataObject::clID ( ) const
inlineoverridevirtual

Definition at line 92 of file StoreGate/src/VarHandleBase.cxx.

92 { return m_clid; }

◆ lock()

virtual void SG::SymlinkDataObject::lock ( )
inlineoverridevirtual

If the held object derives from ILockable, call lock() on it.

Implements DataBucketBase.

Definition at line 99 of file StoreGate/src/VarHandleBase.cxx.

99 { }

◆ object()

virtual void* SG::SymlinkDataObject::object ( )
inlineoverridevirtual

Implements DataBucketBase.

Definition at line 93 of file StoreGate/src/VarHandleBase.cxx.

93 { return m_obj; }

◆ relinquish()

virtual void SG::SymlinkDataObject::relinquish ( )
inlineoverridevirtual

Give up ownership of the DataBucket contents.

This leaks the contents and it is useful mainly for error handling.

Implements DataBucketBase.

Definition at line 98 of file StoreGate/src/VarHandleBase.cxx.

98 { std::abort(); }

◆ tinfo()

virtual const std::type_info& SG::SymlinkDataObject::tinfo ( ) const
inlineoverridevirtual

Return the type_info for the stored object.

Implements DataBucketBase.

Definition at line 94 of file StoreGate/src/VarHandleBase.cxx.

94 { return typeid(void); }

Member Data Documentation

◆ m_clid

CLID SG::SymlinkDataObject::m_clid
private

Definition at line 103 of file StoreGate/src/VarHandleBase.cxx.

◆ m_obj

void* SG::SymlinkDataObject::m_obj
private

Definition at line 104 of file StoreGate/src/VarHandleBase.cxx.


The documentation for this class was generated from the following file:
SG::SymlinkDataObject::m_obj
void * m_obj
Definition: StoreGate/src/VarHandleBase.cxx:104
python.PyAthena.obj
obj
Definition: PyAthena.py:132
SG::SymlinkDataObject::m_clid
CLID m_clid
Definition: StoreGate/src/VarHandleBase.cxx:103