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

# 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 =========================================================================*/
    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