00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00026 #ifndef __vtkMPIDuplicateUnstructuredGrid_h
00027 #define __vtkMPIDuplicateUnstructuredGrid_h
00028
00029 #include "vtkUnstructuredGridToUnstructuredGridFilter.h"
00030 class vtkSocketController;
00031 class vtkMultiProcessController;
00032 class vtkUnstructuredGridWriter;
00033 class vtkUnstructuredGridReader;
00034
00035
00036 class VTK_EXPORT vtkMPIDuplicateUnstructuredGrid : public vtkUnstructuredGridToUnstructuredGridFilter
00037 {
00038 public:
00039 static vtkMPIDuplicateUnstructuredGrid *New();
00040 vtkTypeRevisionMacro(vtkMPIDuplicateUnstructuredGrid, vtkUnstructuredGridToUnstructuredGridFilter);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00046 virtual void SetController(vtkMultiProcessController*);
00047 vtkGetObjectMacro(Controller, vtkMultiProcessController);
00049
00051
00055 vtkSocketController *GetSocketController() {return this->SocketController;}
00056 void SetSocketController (vtkSocketController *controller);
00057 vtkSetMacro(ClientFlag,int);
00058 vtkGetMacro(ClientFlag,int);
00060
00062
00066 vtkSocketController *GetRenderServerSocketController()
00067 {return this->RenderServerSocketController;}
00068 void SetRenderServerSocketController (vtkSocketController *controller);
00069 vtkSetMacro(RenderServerFlag,int);
00070 vtkGetMacro(RenderServerFlag,int);
00072
00074
00077 vtkSetMacro(PassThrough,int);
00078 vtkGetMacro(PassThrough,int);
00079 vtkBooleanMacro(PassThrough,int);
00081
00083
00085 vtkSetMacro(ZeroEmpty,int);
00086 vtkGetMacro(ZeroEmpty,int);
00087 vtkBooleanMacro(ZeroEmpty,int);
00089
00095 protected:
00096 vtkMPIDuplicateUnstructuredGrid();
00097 ~vtkMPIDuplicateUnstructuredGrid();
00098
00099
00100 void ComputeInputUpdateExtents(vtkDataObject *output);
00101 void Execute();
00102 void ServerExecute(vtkUnstructuredGridReader* reader,
00103 vtkUnstructuredGridWriter* writer);
00104 void RenderServerExecute(vtkUnstructuredGridReader* reader);
00105 void ClientExecute(vtkUnstructuredGridReader* reader);
00106 void ReconstructOutput(vtkUnstructuredGridReader* reader, int numProcs,
00107 char* recv, int* recvLengths, int* recvOffsets);
00108 void ExecuteInformation();
00109
00110 vtkMultiProcessController *Controller;
00111
00112
00113 vtkSocketController *SocketController;
00114 int ClientFlag;
00115
00116
00117 vtkSocketController *RenderServerSocketController;
00118 int RenderServerFlag;
00119
00120
00121 int PassThrough;
00122 int ZeroEmpty;
00123
00124
00125 private:
00126 vtkMPIDuplicateUnstructuredGrid(const vtkMPIDuplicateUnstructuredGrid&);
00127 void operator=(const vtkMPIDuplicateUnstructuredGrid&);
00128 };
00129
00130 #endif
00131