00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00066 #ifndef __vtkInputPort_h
00067 #define __vtkInputPort_h
00068
00069 #include "vtkSource.h"
00070 #include "vtkMultiProcessController.h"
00071 class vtkPolyData;
00072 class vtkUnstructuredGrid;
00073 class vtkStructuredGrid;
00074 class vtkRectilinearGrid;
00075 class vtkStructuredPoints;
00076 class vtkImageData;
00077
00078
00079
00080 class VTK_PARALLEL_EXPORT vtkInputPort : public vtkSource
00081 {
00082 public:
00083 static vtkInputPort *New();
00084 vtkTypeMacro(vtkInputPort,vtkSource);
00085 void PrintSelf(ostream& os, vtkIndent indent);
00086
00088
00092 vtkPolyData *GetPolyDataOutput();
00093 vtkUnstructuredGrid *GetUnstructuredGridOutput();
00094 vtkStructuredGrid *GetStructuredGridOutput();
00095 vtkRectilinearGrid *GetRectilinearGridOutput();
00096 vtkStructuredPoints *GetStructuredPointsOutput();
00097 vtkImageData *GetImageDataOutput();
00099
00101
00104 vtkSetMacro(RemoteProcessId, int);
00105 vtkGetMacro(RemoteProcessId, int);
00106 vtkSetMacro(Tag, int);
00107 vtkGetMacro(Tag, int);
00109
00111 void UpdateInformation();
00112
00114 void PropagateUpdateExtent(vtkDataObject *vtkNotUsed(output)) {};
00115
00117 void UpdateData( vtkDataObject *out );
00118
00120 void TriggerAsynchronousUpdate();
00121
00123
00125 vtkMultiProcessController *GetController() {return this->Controller;}
00126 vtkSetObjectMacro(Controller, vtkMultiProcessController);
00128
00130
00135 vtkSetMacro(DoUpdateInformation, int);
00136 vtkGetMacro(DoUpdateInformation, int);
00138
00139
00140
00141
00142 enum Tags {
00143 DOWN_DATA_TIME_TAG = 98970,
00144 UPDATE_EXTENT_TAG = 98971,
00145 TRANSFER_NEEDED_TAG = 98972,
00146 INFORMATION_TRANSFER_TAG = 98973,
00147 DATA_TRANSFER_TAG = 98974,
00148 NEW_DATA_TIME_TAG = 98975
00149 };
00150
00151
00152
00153 protected:
00154 vtkInputPort();
00155 ~vtkInputPort();
00156
00157 vtkMultiProcessController *Controller;
00158 int RemoteProcessId;
00159 int Tag;
00160
00161 unsigned long DataTime;
00162 unsigned long UpStreamMTime;
00163 int TransferNeeded;
00164 int DoUpdateInformation;
00165 private:
00166 vtkInputPort(const vtkInputPort&);
00167 void operator=(const vtkInputPort&);
00168 };
00169
00170 #endif
00171
00172