Loading [MathJax]/jax/input/TeX/config.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ContainedObject.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_CONTAINEDOBJECT_H
2 #define GAUDIKERNEL_CONTAINEDOBJECT_H
3 
4 // Include files
5 #include "GaudiKernel/Kernel.h"
8 #include <iostream>
9 
10 // Forward declarations
11 template <class TYPE>
13 template <class TYPE>
14 class ObjectList;
15 
16 // Typedefs
19 
20 // Definition of the CLID for this class
21 static const CLID CLID_ContainedObject = 190;
22 
32 
35  friend class ObjectList<ContainedObject>;
36 
37 protected:
39  ContainedObject() = default;
43  virtual ~ContainedObject();
44 
45 public:
47  virtual const CLID& clID() const { return classID(); }
48  static const CLID& classID() { return CLID_ContainedObject; }
49 
51  const ObjectContainerBase* parent() const { return m_parent; }
53  void setParent( ObjectContainerBase* value ) { m_parent = value; }
54 
56  virtual long index() const { return m_parent ? m_parent->index( this ) : -1; }
58  virtual StreamBuffer& serialize( StreamBuffer& s ) const { return s; }
60  virtual StreamBuffer& serialize( StreamBuffer& s ) { return s; }
62  virtual std::ostream& fillStream( std::ostream& s ) const { return s; }
64  friend std::ostream& operator<<( std::ostream& s, const ContainedObject& obj ) { return obj.fillStream( s ); }
65 
66 private:
68  ObjectContainerBase* m_parent = nullptr;
69 };
70 
71 #endif // GAUDIKERNEL_CONTAINEDOBJECT_H
ObjectList< ContainedObject > ContainedObjectList
virtual StreamBuffer & serialize(StreamBuffer &s)
Serialize the object for reading.
The stream buffer is a small object collecting object data.
Definition: StreamBuffer.h:41
ObjectVector< ContainedObject > ContainedObjectVector
friend std::ostream & operator<<(std::ostream &s, const ContainedObject &obj)
Output operator (ASCII)
ObjectVector is one of the basic Gaudi container classes capable of being registered in Data Stores...
virtual const CLID & clID() const
Retrieve pointer to class identifier.
virtual long index() const
Distance in the parent container.
ContainedObject(const ContainedObject &)
Copy constructor – do NOT copy the parent reference...
virtual StreamBuffer & serialize(StreamBuffer &s) const
Serialize the object for writing.
static const CLID & classID()
const ObjectContainerBase * parent() const
Access to parent object.
ObjectList is one of the basic Gaudi container classes capable of being registered in Data Stores...
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
static const CLID & classID()
Definition: ObjectList.h:70
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
void setParent(ObjectContainerBase *value)
Update parent member.
string s
Definition: gaudirun.py:312
ObjectContainerBase is the base class for Gaudi container classes.
virtual std::ostream & fillStream(std::ostream &s) const
Fill the output stream (ASCII)
#define GAUDI_API
Definition: Kernel.h:71
STL class.