00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef VTK_OBJECT_BASE_QUEUE_H_
00017 # define VTK_OBJECT_BASE_QUEUE_H_
00018 # include "vtkAdaptorContainer.h"
00019
00020 class vtkObjectBaseQueueInternal;
00021
00043 class VTK_CONTAINERS_EXPORT vtkObjectBaseQueue
00044 : public vtkAdaptorContainer
00045 {
00046 public:
00047 static vtkObjectBaseQueue* New (void);
00048 vtkTypeRevisionMacro (vtkObjectBaseQueue, vtkAdaptorContainer);
00049 void PrintSelf (ostream&, vtkIndent);
00050
00051 virtual vtkIdType GetSize (void) const;
00052 virtual int IsEmpty (void) const;
00053 virtual vtkIdType GetMaxSize (void) const;
00054 virtual int Clear (void);
00055
00060 virtual int Swap (vtkObjectBaseQueue* container);
00061
00066 virtual int Copy (vtkObjectBaseQueue* container);
00067
00076 virtual int Push (vtkObjectBase* item);
00077
00085 int Pop (void);
00096 virtual vtkObjectBase* At (vtkIdType position) const;
00105 vtkObjectBase* Front (void) const;
00106
00111 vtkObjectBase* Back (void) const;
00114 protected:
00115 vtkObjectBaseQueue (void);
00116 ~vtkObjectBaseQueue();
00117
00118 void ReportReferences (vtkGarbageCollector*);
00119
00120 private:
00121
00122 vtkObjectBaseQueueInternal* Internal;
00123
00126 int Swap (vtkAdaptorContainer* a)
00127 { return this->Swap(static_cast<vtkObjectBaseQueue*>(a)); }
00128 int Copy (vtkAdaptorContainer* a)
00129 { return this->Copy(static_cast<vtkObjectBaseQueue*>(a)); }
00131
00132
00133 private:
00139 vtkObjectBaseQueue (const vtkObjectBaseQueue&);
00140 void operator= (const vtkObjectBaseQueue&);
00142 };
00143
00144 #endif
00145
00146
00147
00148