VTK
dox/Filtering/vtkExecutiveCollection.h
Go to the documentation of this file.
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 "vtkCollection.h"
00044 
00045 #include "vtkExecutive.h" // Needed for static cast
00046 
00047 class VTK_FILTERING_EXPORT vtkExecutiveCollection : public vtkCollection
00048 {
00049 public:
00050   static vtkExecutiveCollection *New();
00051   vtkTypeMacro(vtkExecutiveCollection,vtkCollection);
00052   void PrintSelf(ostream& os, vtkIndent indent);
00053 
00055 
00056   void AddItem(vtkExecutive *exec)
00057   {
00058     this->vtkCollection::AddItem(exec);
00059   }
00061 
00063 
00064   vtkExecutive *GetNextItem() 
00065   {
00066     return static_cast<vtkExecutive *>(this->GetNextItemAsObject());
00067   }
00069 
00070   //BTX
00072 
00074   vtkExecutive *GetNextExecutive(vtkCollectionSimpleIterator &cookie) 
00075   {
00076     return static_cast<vtkExecutive *>(this->GetNextItemAsObject(cookie));
00077   }
00078   //ETX
00080 
00081 protected:  
00082   vtkExecutiveCollection() {}
00083   ~vtkExecutiveCollection() {}
00084 
00085 private:
00086   // hide the standard AddItem from the user and the compiler.
00087   void AddItem(vtkObject *o) 
00088   { 
00089     this->vtkCollection::AddItem(o); 
00090   }
00091 
00092 private:
00093   vtkExecutiveCollection(const vtkExecutiveCollection&);  // Not implemented.
00094   void operator=(const vtkExecutiveCollection&);  // Not implemented.
00095 };
00096 
00097 
00098 #endif