11 #ifndef KERNEL_SMARTREFBASE_H    12 #define KERNEL_SMARTREFBASE_H 1   101     m_type = CONTAINEDOBJECT;
   115   void set(
DataObject* pObj, 
long hint_id, 
long link_id);
   118 #endif // KERNEL_SMARTREFBASE_H bool isEqual(const ContainedObject *, const SmartRefBase &c) const 
Equality operator for ContainedObject like references. 
 
const DataObject * m_data
Object data: Pointer to the identifiable object the link originates. 
 
The stream buffer is a small object collecting object data. 
 
long m_hintID
Object data: ID of the link hint to the identifiable object. 
 
ContainedObject * readObject(const ContainedObject *, StreamBuffer &s) const 
Output streamer for ContainedObject like references. 
 
void writeObject(const DataObject *pObject, StreamBuffer &s) const 
Output streamer for DataObject like references. 
 
void writeObject(const ContainedObject *pObject, StreamBuffer &s) const 
Output streamer for ContainedObject like references. 
 
void setObjectType(const ContainedObject *) const 
 
User example objects: SmartRefBase. 
 
const ContainedObject * m_contd
Object data: Pointer to the Contained object (if applicable) 
 
bool isEqual(const DataObject *, const SmartRefBase &c) const 
Equality operator for DataObject like references. 
 
void setObjectType(const DataObject *) const 
 
void addIdentifiedLink(const DataObject *pObject, long hint)
 
long m_linkID
Object data: ID of the object within the identifiable container (if any) 
 
All classes that their objects may be contained in an LHCb ObjectContainer (e.g. 
 
DataObject * readObject(const DataObject *, StreamBuffer &s) const 
Input streamer for DataObject like references. 
 
ObjectContainerBase is the base class for Gaudi container classes. 
 
A DataObject is the base class of any identifiable object on any data store. 
 
void addContainedLink(const ContainedObject *pObject, long hint, long link)
 
void getContainedLink(ContainedObject *&pObject, long &hint, long &link)
 
void getIdentifiedLink(DataObject *&pObject, long &hint)