VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkExecutiveCollection.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright (c) 2008, 2009 by SCI Institute, University of Utah. 00017 00018 This is part of the Parallel Dataflow System originally developed by 00019 Huy T. Vo and Claudio T. Silva. For more information, see: 00020 00021 "Parallel Dataflow Scheme for Streaming (Un)Structured Data" by Huy 00022 T. Vo, Daniel K. Osmari, Brian Summa, Joao L.D. Comba, Valerio 00023 Pascucci and Claudio T. Silva, SCI Institute, University of Utah, 00024 Technical Report #UUSCI-2009-004, 2009. 00025 00026 "Multi-Threaded Streaming Pipeline For VTK" by Huy T. Vo and Claudio 00027 T. Silva, SCI Institute, University of Utah, Technical Report 00028 #UUSCI-2009-005, 2009. 00029 -------------------------------------------------------------------------*/ 00040 #ifndef __vtkExecutiveCollection_h 00041 #define __vtkExecutiveCollection_h 00042 00043 #include "vtkCommonExecutionModelModule.h" // For export macro 00044 #include "vtkCollection.h" 00045 00046 #include "vtkExecutive.h" // Needed for static cast 00047 00048 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExecutiveCollection : public vtkCollection 00049 { 00050 public: 00051 static vtkExecutiveCollection *New(); 00052 vtkTypeMacro(vtkExecutiveCollection,vtkCollection); 00053 void PrintSelf(ostream& os, vtkIndent indent); 00054 00056 00057 void AddItem(vtkExecutive *exec) 00058 { 00059 this->vtkCollection::AddItem(exec); 00060 } 00062 00064 00065 vtkExecutive *GetNextItem() 00066 { 00067 return static_cast<vtkExecutive *>(this->GetNextItemAsObject()); 00068 } 00070 00071 //BTX 00073 00075 vtkExecutive *GetNextExecutive(vtkCollectionSimpleIterator &cookie) 00076 { 00077 return static_cast<vtkExecutive *>(this->GetNextItemAsObject(cookie)); 00078 } 00079 //ETX 00081 00082 protected: 00083 vtkExecutiveCollection() {} 00084 ~vtkExecutiveCollection() {} 00085 00086 private: 00087 // hide the standard AddItem from the user and the compiler. 00088 void AddItem(vtkObject *o) 00089 { 00090 this->vtkCollection::AddItem(o); 00091 } 00092 00093 private: 00094 vtkExecutiveCollection(const vtkExecutiveCollection&); // Not implemented. 00095 void operator=(const vtkExecutiveCollection&); // Not implemented. 00096 }; 00097 00098 00099 #endif