| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

ContainedObject.h

Go to the documentation of this file.
00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/ContainedObject.h,v 1.7 2004/01/19 16:56:44 mato Exp $
00002 #ifndef GAUDIKERNEL_CONTAINEDOBJECT_H
00003 #define GAUDIKERNEL_CONTAINEDOBJECT_H
00004 
00005 // Include files
00006 #include "GaudiKernel/Kernel.h"
00007 #include "GaudiKernel/StreamBuffer.h"
00008 #include "GaudiKernel/ObjectContainerBase.h"
00009 #include <iostream>
00010 
00011 // Forward declarations
00012 template <class TYPE> class ObjectVector;
00013 template <class TYPE> class ObjectList;
00014 
00015 // Typedefs
00016 typedef ObjectVector<ContainedObject> ContainedObjectVector;
00017 typedef ObjectList<ContainedObject> ContainedObjectList;
00018 
00019 // Definition of the CLID for this class  
00020 static const CLID CLID_ContainedObject = 190;
00021 
00030 class ContainedObject {
00031   
00033   friend class ObjectVector<ContainedObject>;
00034   friend class ObjectList<ContainedObject>;
00035   
00036 protected:
00038   ContainedObject() : m_parent(0)  { }
00040   ContainedObject(const ContainedObject&) : m_parent(0)  { }
00042   virtual ~ContainedObject();
00043   
00044 public:
00046   virtual const CLID& clID() const { return ContainedObject::classID(); }
00047   static const CLID& classID()     { return CLID_ContainedObject; }
00048   
00050   const ObjectContainerBase* parent () const  { return m_parent;        }
00052   void setParent (ObjectContainerBase* value) { m_parent = value;       }
00053   
00055   virtual long index() const 
00056   { 
00057     return (m_parent) ? m_parent->index(this) : -1;  
00058   }
00060   virtual StreamBuffer& serialize( StreamBuffer& s ) const  { return s; }
00062   virtual StreamBuffer& serialize( StreamBuffer& s )        { return s; }
00064   virtual std::ostream& fillStream( std::ostream& s ) const { return s; }
00066   friend std::ostream& operator<< ( std::ostream& s, const ContainedObject& obj ) {
00067     return obj.fillStream(s);
00068   }
00069   
00070 private: 
00072   ObjectContainerBase*   m_parent;
00073 };
00074 
00075 #endif  // GAUDIKERNEL_CONTAINEDOBJECT_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:56:57 2011 for GaudiKernel by doxygen 1.4.7