00001 /*========================================================================= 00002 00003 Module: $RCSfile: vtkAbstractIterator.h,v $ 00004 00005 Copyright (c) Kitware, Inc. 00006 All rights reserved. 00007 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00027 #ifndef __vtkAbstractIterator_h 00028 #define __vtkAbstractIterator_h 00029 00030 #include "vtkObjectBase.h" 00031 00032 class vtkContainer; 00033 00034 template<class KeyType, class DataType> 00035 class vtkAbstractIterator : public vtkObjectBase 00036 { 00037 friend class vtkContainer; 00038 00039 virtual const char* GetClassNameInternal() const { return "vtkAbstractIterator"; } 00040 public: 00041 00054 void SetContainer(vtkContainer*); 00055 00057 vtkContainer *GetContainer() { return this->Container; } 00058 00068 protected: 00069 vtkAbstractIterator(); 00070 virtual ~vtkAbstractIterator(); 00071 00072 vtkContainer *Container; 00073 vtkIdType ReferenceCount; 00074 00075 private: 00076 vtkAbstractIterator(const vtkAbstractIterator&); // Not implemented 00077 void operator=(const vtkAbstractIterator&); // Not implemented 00078 }; 00079 00080 #ifdef VTK_NO_EXPLICIT_TEMPLATE_INSTANTIATION 00081 #include "vtkAbstractIterator.txx" 00082 #endif 00083 00084 #endif 00085 00086 00087 00088 00089 00090 00091 00092