00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00044
#ifndef __vtkOutputPort_h
00045
#define __vtkOutputPort_h
00046
00047
#include "vtkProcessObject.h"
00048
00049
class vtkMultiProcessController;
00050
00051 class VTK_PARALLEL_EXPORT vtkOutputPort :
public vtkProcessObject
00052 {
00053
public:
00054
static vtkOutputPort *
New();
00055 vtkTypeRevisionMacro(vtkOutputPort,
vtkProcessObject);
00056
void PrintSelf(ostream& os,
vtkIndent indent);
00057
00059
00060
void SetInput(
vtkDataObject *input);
00061
vtkDataObject *GetInput();
00063
00065
00069
void SetTag(
int tag);
00070 vtkGetMacro(Tag,
int);
00072
00080
void WaitForUpdate();
00081
00083
00084 vtkGetObjectMacro(Controller,
vtkMultiProcessController);
00085
virtual void SetController(
vtkMultiProcessController*);
00087
00089
00091
void TriggerUpdateInformation(
int remoteProcessId);
00092
void TriggerUpdate(
int remoteProcessId);
00094
00096
00097 vtkSetMacro(PipelineFlag,
int);
00098 vtkGetMacro(PipelineFlag,
int);
00099 vtkBooleanMacro(PipelineFlag,
int);
00101
00105
void SetParameterMethod(
void (*f)(
void *),
void *arg);
00106
00108
void SetParameterMethodArgDelete(
void (*f)(
void *));
00109
00110
protected:
00111 vtkOutputPort();
00112 ~vtkOutputPort();
00113
00114 int Tag;
00115
00116 vtkMultiProcessController *Controller;
00117 vtkTimeStamp UpdateTime;
00118
00119
00120 int PipelineFlag;
00121 void (*ParameterMethod)(
void *);
00122 void (*ParameterMethodArgDelete)(
void *);
00123 void *ParameterMethodArg;
00124
private:
00125 vtkOutputPort(
const vtkOutputPort&);
00126
void operator=(
const vtkOutputPort&);
00127 };
00128
00129
#endif
00130
00131