VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkExecutiveCollection.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExecutiveCollection.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright (c) 2008, 2009 by SCI Institute, University of Utah.
17 
18  This is part of the Parallel Dataflow System originally developed by
19  Huy T. Vo and Claudio T. Silva. For more information, see:
20 
21  "Parallel Dataflow Scheme for Streaming (Un)Structured Data" by Huy
22  T. Vo, Daniel K. Osmari, Brian Summa, Joao L.D. Comba, Valerio
23  Pascucci and Claudio T. Silva, SCI Institute, University of Utah,
24  Technical Report #UUSCI-2009-004, 2009.
25 
26  "Multi-Threaded Streaming Pipeline For VTK" by Huy T. Vo and Claudio
27  T. Silva, SCI Institute, University of Utah, Technical Report
28  #UUSCI-2009-005, 2009.
29 -------------------------------------------------------------------------*/
40 #ifndef __vtkExecutiveCollection_h
41 #define __vtkExecutiveCollection_h
42 
43 #include "vtkCommonExecutionModelModule.h" // For export macro
44 #include "vtkCollection.h"
45 
46 #include "vtkExecutive.h" // Needed for static cast
47 
48 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExecutiveCollection : public vtkCollection
49 {
50 public:
51  static vtkExecutiveCollection *New();
52  vtkTypeMacro(vtkExecutiveCollection,vtkCollection);
53  void PrintSelf(ostream& os, vtkIndent indent);
54 
56 
57  void AddItem(vtkExecutive *exec)
58  {
59  this->vtkCollection::AddItem(exec);
60  }
62 
64 
66  {
67  return static_cast<vtkExecutive *>(this->GetNextItemAsObject());
68  }
70 
71  //BTX
73 
75  vtkExecutive *GetNextExecutive(vtkCollectionSimpleIterator &cookie)
76  {
77  return static_cast<vtkExecutive *>(this->GetNextItemAsObject(cookie));
78  }
79  //ETX
81 
82 protected:
85 
86 private:
87  // hide the standard AddItem from the user and the compiler.
88  void AddItem(vtkObject *o)
89  {
90  this->vtkCollection::AddItem(o);
91  }
92 
93 private:
94  vtkExecutiveCollection(const vtkExecutiveCollection&); // Not implemented.
95  void operator=(const vtkExecutiveCollection&); // Not implemented.
96 };
97 
98 
99 #endif
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:48
void AddItem(vtkExecutive *exec)
maintain a list of executive objects
vtkExecutive * GetNextExecutive(vtkCollectionSimpleIterator &cookie)