00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/ObjectContainerBase.h,v 1.5 2008/10/09 16:46:49 marcocle Exp $ 00002 #ifndef GAUDI_OBJECTCONTAINERBASE_H 00003 #define GAUDI_OBJECTCONTAINERBASE_H 1 00004 00005 // Include files 00006 #include "GaudiKernel/Kernel.h" 00007 #include "GaudiKernel/DataObject.h" 00008 00009 // Forward declarations 00010 class ContainedObject; 00011 00020 class ObjectContainerBase : public DataObject { 00021 00022 protected: 00023 00025 ObjectContainerBase() { } 00026 00028 virtual ~ObjectContainerBase() { } 00029 00030 public: 00031 00033 typedef size_t size_type; 00034 00036 virtual long index( const ContainedObject* obj ) const = 0; 00037 00039 virtual ContainedObject* containedObject( long dist ) const = 0; 00040 00042 virtual size_type numberOfObjects() const = 0; 00043 00047 virtual long add(ContainedObject* pObject) = 0; 00048 00052 virtual long remove(ContainedObject* value) = 0; 00053 00054 private: 00055 }; 00056 00057 #endif // GAUDI_OBJECTCONTAINERBASE_H