00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkOutputPort.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00055 #ifndef __vtkOutputPort_h 00056 #define __vtkOutputPort_h 00057 00058 #include "vtkProcessObject.h" 00059 00060 class vtkMultiProcessController; 00061 00062 class VTK_PARALLEL_EXPORT vtkOutputPort : public vtkProcessObject 00063 { 00064 public: 00065 static vtkOutputPort *New(); 00066 vtkTypeRevisionMacro(vtkOutputPort,vtkProcessObject); 00067 void PrintSelf(ostream& os, vtkIndent indent); 00068 00070 00071 void SetInput(vtkDataObject *input); 00072 vtkDataObject *GetInput(); 00074 00076 00080 void SetTag(int tag); 00081 vtkGetMacro(Tag, int); 00083 00091 void WaitForUpdate(); 00092 00094 00095 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00096 virtual void SetController(vtkMultiProcessController*); 00098 00100 00102 void TriggerUpdateInformation(int remoteProcessId); 00103 void TriggerUpdate(int remoteProcessId); 00105 00107 00108 vtkSetMacro(PipelineFlag, int); 00109 vtkGetMacro(PipelineFlag, int); 00110 vtkBooleanMacro(PipelineFlag, int); 00112 00116 void SetParameterMethod(void (*f)(void *), void *arg); 00117 00119 void SetParameterMethodArgDelete(void (*f)(void *)); 00120 00121 protected: 00122 vtkOutputPort(); 00123 ~vtkOutputPort(); 00124 00125 int Tag; 00126 00127 vtkMultiProcessController *Controller; 00128 vtkTimeStamp UpdateTime; 00129 00130 // Stuff for pipeline parallelism. 00131 int PipelineFlag; 00132 void (*ParameterMethod)(void *); 00133 void (*ParameterMethodArgDelete)(void *); 00134 void *ParameterMethodArg; 00135 private: 00136 vtkOutputPort(const vtkOutputPort&); // Not implemented. 00137 void operator=(const vtkOutputPort&); // Not implemented. 00138 }; 00139 00140 #endif 00141 00142