00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00002 * 00003 * $Id: vtkObjectQueue.h,v 1.6 2004/06/03 18:58:29 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_QUEUE_H_ 00017 # define VTK_OBJECT_QUEUE_H_ 00018 # include "vtkObjectBaseQueue.h" 00019 # include "vtkObjectQueueIterator.h" 00020 00021 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_BEGIN 00022 00036 class VTK_EXTENSIONS_CONTAINERS_EXPORT vtkObjectQueue 00037 : public vtkObjectBaseQueue 00038 { 00039 public: 00040 static vtkObjectQueue* New (void); 00041 vtkTypeRevisionMacro (vtkObjectQueue, vtkObjectBaseQueue); 00042 00049 virtual vtkObject* Front (void) const 00050 { return static_cast<vtkObject*>(this->Superclass::Front()); } 00051 00058 virtual vtkObject* Back (void) const 00059 { return static_cast<vtkObject*>(this->Superclass::Back()); } 00060 00070 virtual int Push (vtkObject* object) 00071 { return this->Superclass::Push(object); } 00072 00074 vtkObjectQueueIterator* CreateIterator (void); 00075 00076 protected: 00077 vtkObjectQueue (void) {} 00078 ~vtkObjectQueue() {} 00079 00080 private: 00081 //BTX 00083 friend class vtkObjectQueueIterator; 00084 00086 int Push (vtkObjectBase* object) 00087 { return this->Superclass::Push(object); } 00089 //ETX 00090 00091 private: 00097 vtkObjectQueue (const vtkObjectQueue&); 00098 void operator= (const vtkObjectQueue&); 00100 }; 00101 00102 VTK_EXTENSIONS_CONTAINERS_NAMESPACE_END 00103 00104 #endif /* VTK_OBJECT_QUEUE_H_ */ 00105 /* 00106 * End of: $Id: vtkObjectQueue.h,v 1.6 2004/06/03 18:58:29 xpxqx Exp $. 00107 * 00108 */