The Gaudi Framework  master (37c0b60a)
ContainedObject Class Reference

#include <GaudiKernel/ContainedObject.h>

Inheritance diagram for ContainedObject:
Collaboration diagram for ContainedObject:

Public Member Functions

virtual const CLIDclID () const
 Retrieve pointer to class identifier. More...
 
const ObjectContainerBaseparent () const
 Access to parent object. More...
 
void setParent (ObjectContainerBase *value)
 Update parent member. More...
 
virtual long index () const
 Distance in the parent container. More...
 
virtual StreamBufferserialize (StreamBuffer &s) const
 Serialize the object for writing. More...
 
virtual StreamBufferserialize (StreamBuffer &s)
 Serialize the object for reading. More...
 
virtual std::ostreamfillStream (std::ostream &s) const
 Fill the output stream (ASCII) More...
 

Static Public Member Functions

static const CLIDclassID ()
 

Protected Member Functions

 ContainedObject ()=default
 Constructors. More...
 
 ContainedObject (const ContainedObject &)
 Copy constructor and assignement: do NOT copy the parent reference... More...
 
ContainedObjectoperator= (const ContainedObject &)
 
virtual ~ContainedObject ()
 Destructor. More...
 

Private Attributes

ObjectContainerBasem_parent = nullptr
 Pointer to the parent. More...
 

Friends

class ObjectVector< ContainedObject >
 Allow the container classes access to protected members. More...
 
class ObjectList< ContainedObject >
 
std::ostreamoperator<< (std::ostream &s, const ContainedObject &obj)
 Output operator (ASCII) More...
 

Detailed Description

All classes that their objects may be contained in an LHCb ObjectContainer (e.g. ObjectVector, or ObjectList), have to inherit from the class ContainedObject. It guarantees the navigability from the contained object back to its container.

Author
Pavel Binko

Definition at line 41 of file ContainedObject.h.

Constructor & Destructor Documentation

◆ ContainedObject() [1/2]

ContainedObject::ContainedObject ( )
protecteddefault

Constructors.

◆ ContainedObject() [2/2]

ContainedObject::ContainedObject ( const ContainedObject )
inlineprotected

Copy constructor and assignement: do NOT copy the parent reference...

Definition at line 51 of file ContainedObject.h.

51 : ContainedObject() {}

◆ ~ContainedObject()

ContainedObject::~ContainedObject ( )
protectedvirtual

Destructor.

Definition at line 13 of file ContainedObject.cpp.

13  {
14  // If the object is contained in a container, remove it from there
15  if ( m_parent ) m_parent->remove( this );
16 }

Member Function Documentation

◆ classID()

static const CLID& ContainedObject::classID ( )
inlinestatic

Definition at line 60 of file ContainedObject.h.

60 { return CLID_ContainedObject; }

◆ clID()

virtual const CLID& ContainedObject::clID ( ) const
inlinevirtual

Retrieve pointer to class identifier.

Reimplemented in Gaudi::Examples::MyTrack, Gaudi::TestSuite::MyTrack, Gaudi::Examples::MyVertex, and Gaudi::TestSuite::MyVertex.

Definition at line 59 of file ContainedObject.h.

59 { return classID(); }

◆ fillStream()

virtual std::ostream& ContainedObject::fillStream ( std::ostream s) const
inlinevirtual

Fill the output stream (ASCII)

Definition at line 74 of file ContainedObject.h.

74 { return s; }

◆ index()

virtual long ContainedObject::index ( ) const
inlinevirtual

Distance in the parent container.

Reimplemented in KeyedObject< KEY >.

Definition at line 68 of file ContainedObject.h.

68 { return m_parent ? m_parent->index( this ) : -1; }

◆ operator=()

ContainedObject& ContainedObject::operator= ( const ContainedObject )
inlineprotected

Definition at line 53 of file ContainedObject.h.

53 { return *this; }

◆ parent()

const ObjectContainerBase* ContainedObject::parent ( ) const
inline

Access to parent object.

Definition at line 63 of file ContainedObject.h.

63 { return m_parent; }

◆ serialize() [1/2]

virtual StreamBuffer& ContainedObject::serialize ( StreamBuffer s)
inlinevirtual

Serialize the object for reading.

Reimplemented in Gaudi::Examples::MyTrack, Gaudi::TestSuite::MyTrack, Gaudi::Examples::MyVertex, Gaudi::TestSuite::MyVertex, KeyedObject< KEY >, and KeyedObject< int >.

Definition at line 72 of file ContainedObject.h.

72 { return s; }

◆ serialize() [2/2]

virtual StreamBuffer& ContainedObject::serialize ( StreamBuffer s) const
inlinevirtual

Serialize the object for writing.

Reimplemented in Gaudi::Examples::MyTrack, Gaudi::TestSuite::MyTrack, Gaudi::Examples::MyVertex, Gaudi::TestSuite::MyVertex, KeyedObject< KEY >, and KeyedObject< int >.

Definition at line 70 of file ContainedObject.h.

70 { return s; }

◆ setParent()

void ContainedObject::setParent ( ObjectContainerBase value)
inline

Update parent member.

Definition at line 65 of file ContainedObject.h.

65 { m_parent = value; }

Friends And Related Function Documentation

◆ ObjectList< ContainedObject >

friend class ObjectList< ContainedObject >
friend

Definition at line 31 of file ContainedObject.h.

◆ ObjectVector< ContainedObject >

Allow the container classes access to protected members.

Definition at line 31 of file ContainedObject.h.

◆ operator<<

std::ostream& operator<< ( std::ostream s,
const ContainedObject obj 
)
friend

Output operator (ASCII)

Definition at line 76 of file ContainedObject.h.

76 { return obj.fillStream( s ); }

Member Data Documentation

◆ m_parent

ObjectContainerBase* ContainedObject::m_parent = nullptr
private

Pointer to the parent.

Definition at line 80 of file ContainedObject.h.


The documentation for this class was generated from the following files:
gaudirun.s
string s
Definition: gaudirun.py:346
ContainedObject::m_parent
ObjectContainerBase * m_parent
Pointer to the parent.
Definition: ContainedObject.h:80
ObjectContainerBase::index
virtual long index(const ContainedObject *obj) const =0
Distance of a given object from the beginning of its container.
ObjectContainerBase::remove
virtual long remove(ContainedObject *value)=0
Release object from the container (the pointer will be removed from the container,...
ContainedObject::ContainedObject
ContainedObject()=default
Constructors.
ContainedObject::classID
static const CLID & classID()
Definition: ContainedObject.h:60
ContainedObject::fillStream
virtual std::ostream & fillStream(std::ostream &s) const
Fill the output stream (ASCII)
Definition: ContainedObject.h:74