Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

vtkObjectBaseQueue.h

Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkObjectBaseQueue.h,v 1.5 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_QUEUE_H_ 00017 # define VTK_OBJECT_BASE_QUEUE_H_ 00018 # include "vtkContainer.h" 00019 # include "vtkObjectBaseQueueIterator.h" // Covariant return type. 00020 00021 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_BEGIN 00022 00023 class vtkObjectBaseQueueInternal; 00024 00038 class VTK_EXTENSIONS_CONTAINERS_EXPORT vtkObjectBaseQueue 00039 : public vtkContainer 00040 { 00041 public: 00042 static vtkObjectBaseQueue* New (void); 00043 vtkTypeRevisionMacro (vtkObjectBaseQueue, vtkContainer); 00044 00046 vtkIdType GetSize (void) const; 00047 00049 int IsEmpty (void) const; 00050 00052 vtkIdType GetMaxSize (void) const; 00053 00055 void Clear (void); 00056 00061 virtual int Swap (vtkObjectBaseQueue* container); 00062 00074 virtual int Push (vtkObjectBase* object); 00075 00085 int Pop (void); 00094 vtkObjectBase* Front (void) const; 00095 00100 vtkObjectBase* Back (void) const; 00104 vtkObjectBaseQueueIterator* CreateIterator (void); 00105 00106 protected: 00107 vtkObjectBaseQueue (void); 00108 ~vtkObjectBaseQueue(); 00109 00110 private: 00111 //BTX 00112 vtkObjectBaseQueueInternal* Internal; 00113 00114 friend class vtkObjectBaseQueueIterator; 00115 00118 int Swap (vtkContainer* a) 00119 { return this->Swap(static_cast<vtkObjectBaseQueue*>(a)); } 00121 //ETX 00122 00123 private: 00129 vtkObjectBaseQueue (const vtkObjectBaseQueue&); 00130 void operator= (const vtkObjectBaseQueue&); 00132 }; 00133 00134 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_END 00135 00136 #endif /* VTK_OBJECT_BASE_QUEUE_H_ */ 00137 /* 00138 * End of: $Id: vtkObjectBaseQueue.h,v 1.5 2004/06/03 18:58:28 xpxqx Exp $. 00139 * 00140 */

Generated on Tue Aug 10 03:37:41 2004 for vtkExtensions by doxygen 1.3.7