ParaView
vtkCPProcessor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkCPProcessor.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 #ifndef vtkCPProcessor_h
16 #define vtkCPProcessor_h
17 
18 #include "vtkObject.h"
19 #include "vtkPVCatalystModule.h" // For windows import/export of shared libraries
20 
21 struct vtkCPProcessorInternals;
23 class vtkCPPipeline;
24 class vtkMPICommunicatorOpaqueComm;
25 class vtkMultiProcessController;
26 
31 
57 class VTKPVCATALYST_EXPORT vtkCPProcessor : public vtkObject
58 {
59 public:
60  static vtkCPProcessor* New();
61  vtkTypeMacro(vtkCPProcessor, vtkObject);
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
66  virtual int AddPipeline(vtkCPPipeline* pipeline);
67 
69  virtual int GetNumberOfPipelines();
70 
72  virtual vtkCPPipeline* GetPipeline(int which);
73 
75  virtual void RemovePipeline(vtkCPPipeline* pipeline);
76  virtual void RemoveAllPipelines();
77 
84  virtual int Initialize();
85 #ifndef __WRAP__
86  virtual int Initialize(vtkMPICommunicatorOpaqueComm& comm);
87 #endif
88 
96  virtual int RequestDataDescription(vtkCPDataDescription* dataDescription);
97 
101  virtual int CoProcess(vtkCPDataDescription* dataDescription);
102 
105  virtual int Finalize();
106 
107 protected:
108  vtkCPProcessor();
109  virtual ~vtkCPProcessor();
110 
112  virtual vtkObject* NewInitializationHelper();
113 
114 private:
115  vtkCPProcessor(const vtkCPProcessor&) VTK_DELETE_FUNCTION;
116  void operator=(const vtkCPProcessor&) VTK_DELETE_FUNCTION;
117 
118  vtkCPProcessorInternals* Internal;
119  vtkObject* InitializationHelper;
120  static vtkMultiProcessController* Controller;
121 };
122 
123 #endif
There are 3 distinct phases for the operation of a co-processor.
Generic interface for operating on pipelines.
Definition: vtkCPPipeline.h:29
This class provides the description of the data for the coprocessor pipelines.