112 pDO = r.ObjectRef->data();
113 hint = r.ObjectRef->hintID();
114 link = r.ObjectRef->linkID();
116 switch( r.Base->objectType() ) {
118 p = r.ContainedRef->data();
128 cout <<
"IOHandler<SmartRefBase>::onWrite> "
129 <<
"Found invalid smart reference with object "
130 <<
"having no parent."
132 throw runtime_error(
"IOHandler<SmartRefBase>::onWrite> "
133 "Found invalid smart reference with object "
134 "having no parent.");
142 if ( pDO == last_link_object ) {
143 r.Base->set(curr, last_link_hint, link);
144 m_root->WriteBuffer(b, obj);
152 last_link_hint = hint;
153 last_link_object = pDO;
160 r.Base->set(curr, hint, link);
161 m_root->WriteBuffer(b, obj);
GAUDI_API DataObject * getCurrentDataObject()
virtual long index() const
Distance in the parent container.
long addLink(const std::string &path, const DataObject *pObject) const
Add link by object reference and path.
TClass * m_root
ROOT persistent class description.
const ObjectContainerBase * parent() const
Access to parent object.
IRegistry * registry() const
Get pointer to Registry.
LinkManager * linkMgr() const
Retrieve Link manager.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
virtual const id_type & identifier() const =0
Full identifier (or key)
ObjectContainerBase is the base class for Gaudi container classes.
A DataObject is the base class of any identifiable object on any data store.
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of no...