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

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 =========================================================================*/
00052 #ifndef __vtkOutputPort_h
00053 #define __vtkOutputPort_h
00054 
00055 #include "vtkProcessObject.h"
00056 
00057 class vtkMultiProcessController;
00058 
00059 class VTK_PARALLEL_EXPORT vtkOutputPort : public vtkProcessObject
00060 {
00061 public:
00062   static vtkOutputPort *New();
00063   vtkTypeRevisionMacro(vtkOutputPort,vtkProcessObject);
00064   void PrintSelf(ostream& os, vtkIndent indent);
00065 
00067 
00068   void SetInput(vtkDataObject *input);
00069   vtkDataObject *GetInput();
00071   
00073 
00077   void SetTag(int tag);
00078   vtkGetMacro(Tag, int);
00080   
00088   void WaitForUpdate();
00089   
00091 
00092   vtkGetObjectMacro(Controller, vtkMultiProcessController);
00093   virtual void SetController(vtkMultiProcessController*);
00095 
00097 
00099   void TriggerUpdateInformation(int remoteProcessId);
00100   void TriggerUpdate(int remoteProcessId);
00102   
00104 
00105   vtkSetMacro(PipelineFlag, int);
00106   vtkGetMacro(PipelineFlag, int);
00107   vtkBooleanMacro(PipelineFlag, int);  
00109   
00113   void SetParameterMethod(void (*f)(void *), void *arg);
00114 
00116   void SetParameterMethodArgDelete(void (*f)(void *));
00117   
00118 protected:
00119   vtkOutputPort();
00120   ~vtkOutputPort();  
00121   
00122   int Tag;
00123   
00124   virtual int FillInputPortInformation(int, vtkInformation*);
00125 
00126   vtkMultiProcessController *Controller;
00127   vtkTimeStamp UpdateTime;
00128 
00129   // Stuff for pipeline parallelism.
00130   int PipelineFlag;
00131   void (*ParameterMethod)(void *);
00132   void (*ParameterMethodArgDelete)(void *);
00133   void *ParameterMethodArg;
00134 private:
00135   vtkOutputPort(const vtkOutputPort&);  // Not implemented.
00136   void operator=(const vtkOutputPort&);  // Not implemented.
00137 };
00138 
00139 #endif
00140 
00141