00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040
#ifndef __vtkOutputPort_h
00041
#define __vtkOutputPort_h
00042
00043
#include "vtkProcessObject.h"
00044
00045
class vtkMultiProcessController;
00046
00047 class VTK_PARALLEL_EXPORT vtkOutputPort :
public vtkProcessObject
00048 {
00049
public:
00050
static vtkOutputPort *
New();
00051 vtkTypeRevisionMacro(vtkOutputPort,
vtkProcessObject);
00052
void PrintSelf(ostream& os,
vtkIndent indent);
00053
00055
00056
void SetInput(
vtkDataObject *input);
00057
vtkDataObject *GetInput();
00059
00061
00065
void SetTag(
int tag);
00066 vtkGetMacro(Tag,
int);
00068
00076
void WaitForUpdate();
00077
00079
00080 vtkGetObjectMacro(Controller,
vtkMultiProcessController);
00081
virtual void SetController(
vtkMultiProcessController*);
00083
00085
00087
void TriggerUpdateInformation(
int remoteProcessId);
00088
void TriggerUpdate(
int remoteProcessId);
00090
00092
00093 vtkSetMacro(PipelineFlag,
int);
00094 vtkGetMacro(PipelineFlag,
int);
00095 vtkBooleanMacro(PipelineFlag,
int);
00097
00101
void SetParameterMethod(
void (*f)(
void *),
void *arg);
00102
00104
void SetParameterMethodArgDelete(
void (*f)(
void *));
00105
00106
protected:
00107 vtkOutputPort();
00108 ~vtkOutputPort();
00109
00110 int Tag;
00111
00112 vtkMultiProcessController *Controller;
00113 vtkTimeStamp UpdateTime;
00114
00115
00116 int PipelineFlag;
00117 void (*ParameterMethod)(
void *);
00118 void (*ParameterMethodArgDelete)(
void *);
00119 void *ParameterMethodArg;
00120
private:
00121 vtkOutputPort(
const vtkOutputPort&);
00122
void operator=(
const vtkOutputPort&);
00123 };
00124
00125
#endif
00126
00127