00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkObjectBaseHashMap.h,v 1.11 2004/06/03 18:58:28 xpxqx Exp $ 00004 * 00005 * Copyright (c) 2004 Sean McInerney 00006 * All rights reserved. 00007 * 00008 * See Copyright.txt or http://vtkextensions.sourceforge.net/Copyright.html 00009 * for details. 00010 * 00011 * This software is distributed WITHOUT ANY WARRANTY; without even 00012 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 * PURPOSE. See the above copyright notice for more information. 00014 * 00015 */ 00016 #ifndef VTK_OBJECT_BASE_HASH_MAP_H_ 00017 # define VTK_OBJECT_BASE_HASH_MAP_H_ 00018 # include "vtkAbstractMap.h" 00019 # include "vtkObjectBaseHashMapIterator.h" // Covariant return type. 00020 00021 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_BEGIN 00022 00023 class vtkObjectBaseHashMapInternal; 00024 00033 class VTK_EXTENSIONS_CONTAINERS_EXPORT vtkObjectBaseHashMap 00034 : public vtkAbstractMap 00035 { 00036 public: 00037 static vtkObjectBaseHashMap* New (void); 00038 vtkTypeRevisionMacro (vtkObjectBaseHashMap, vtkAbstractMap); 00039 00041 vtkIdType GetSize (void) const; 00042 00044 int IsEmpty (void) const; 00045 00047 vtkIdType GetMaxSize (void) const; 00048 00050 void Clear (void); 00051 00056 virtual int Swap (vtkObjectBaseHashMap* container); 00057 00062 vtkIdType GetCapacity (void) const; 00063 00066 int GetCheckUnique (void) const; 00067 void SetCheckUnique (int a); 00072 int GetCheckCase (void) const; 00073 void SetCheckCase (int a); 00083 vtkObjectBase* Find (const char* key) const; 00084 00097 int Insert (const char* key, 00098 vtkObjectBase* object); 00099 00110 int Erase (const char* key); 00111 00116 virtual const char* FindKey (const vtkObjectBase* object); 00117 00124 const char* FindNextKey (void); 00125 00133 vtkObjectBase* Front (void) const; 00134 00140 int Front (const char* & key, 00141 vtkObjectBase* & object) const; 00142 00148 vtkObjectBase* Back (void) const; 00149 00155 int Back (const char* & key, 00156 vtkObjectBase* & object) const; 00160 vtkObjectBaseHashMapIterator* CreateIterator (void); 00161 00162 protected: 00172 vtkObjectBaseHashMap (void); 00173 ~vtkObjectBaseHashMap(); 00174 00175 private: 00176 //BTX 00177 vtkObjectBaseHashMapInternal* Internal; 00178 00179 friend class vtkObjectBaseHashMapIterator; 00180 00183 int Swap (vtkAbstractMap* a) 00184 { return this->Swap(static_cast<vtkObjectBaseHashMap*>(a)); } 00186 //ETX 00187 00188 private: 00194 vtkObjectBaseHashMap (const vtkObjectBaseHashMap&); 00195 void operator= (const vtkObjectBaseHashMap&); 00197 }; 00198 00199 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_END 00200 00201 #endif /* VTK_OBJECT_BASE_HASH_MAP_H_ */ 00202 /* 00203 * End of: $Id: vtkObjectBaseHashMap.h,v 1.11 2004/06/03 18:58:28 xpxqx Exp $. 00204 * 00205 */