Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Parallel/vtkOutputPort.h

Go to the documentation of this file.
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 =========================================================================*/ 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 // Stuff for pipeline parallelism. 00120 int PipelineFlag; 00121 void (*ParameterMethod)(void *); 00122 void (*ParameterMethodArgDelete)(void *); 00123 void *ParameterMethodArg; 00124 private: 00125 vtkOutputPort(const vtkOutputPort&); // Not implemented. 00126 void operator=(const vtkOutputPort&); // Not implemented. 00127 }; 00128 00129 #endif 00130 00131