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 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 // Stuff for pipeline parallelism. 00116 int PipelineFlag; 00117 void (*ParameterMethod)(void *); 00118 void (*ParameterMethodArgDelete)(void *); 00119 void *ParameterMethodArg; 00120 private: 00121 vtkOutputPort(const vtkOutputPort&); // Not implemented. 00122 void operator=(const vtkOutputPort&); // Not implemented. 00123 }; 00124 00125 #endif 00126 00127