00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef VTK_ASSOCIATIVE_CONTAINER_H_
00017 # define VTK_ASSOCIATIVE_CONTAINER_H_
00018 # include "vtkContainer.h"
00019 # include "vtkAssociativeIterator.h"
00020
00037 class VTK_CONTAINERS_EXPORT vtkAssociativeContainer
00038 : public vtkContainer
00039 {
00040 public:
00041 vtkTypeRevisionMacro (vtkAssociativeContainer, vtkContainer);
00042 void PrintSelf (ostream&, vtkIndent);
00043
00048 virtual int Swap (vtkAssociativeContainer* container) = 0;
00049
00054 virtual int Copy (vtkAssociativeContainer* container) = 0;
00055
00060 virtual vtkIdType GetCapacity (void) const;
00061
00064 virtual int GetCheckUnique (void) const;
00065 virtual void SetCheckUnique (int a);
00066 vtkBooleanMacro (CheckUnique, int);
00071 virtual int GetCheckCase (void) const;
00072 virtual void SetCheckCase (int a);
00073 vtkBooleanMacro (CheckCase, int);
00085 virtual vtkObjectBase* Find (const char* key) const;
00086
00095 virtual int Insert (const char* key,
00096 vtkObjectBase* item) = 0;
00097
00108 virtual int Erase (const char* key) = 0;
00109
00114 virtual const char* FindKey (const vtkObjectBase* item) = 0;
00115
00122 virtual const char* FindNextKey (void) = 0;
00123
00130 virtual int Front (const char* & key,
00131 vtkObjectBase* & item) const;
00132
00137 virtual int Back (const char* & key,
00138 vtkObjectBase* & item) const;
00142 virtual vtkAssociativeIterator* CreateIterator (void) = 0;
00143
00144 protected:
00145 vtkAssociativeContainer (void);
00146 ~vtkAssociativeContainer();
00147
00148 private:
00149
00152 int Swap (vtkContainer* a)
00153 { return this->Swap(static_cast<vtkAssociativeContainer*>(a)); }
00154 int Copy (vtkContainer* a)
00155 { return this->Copy(static_cast<vtkAssociativeContainer*>(a)); }
00157
00158
00159 private:
00165 vtkAssociativeContainer (const vtkAssociativeContainer&);
00166 void operator= (const vtkAssociativeContainer&);
00168 };
00169
00170 #endif
00171
00172
00173
00174