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

# Parallel/vtkInputPort.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkInputPort.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 =========================================================================*/
    00053 #ifndef __vtkInputPort_h
    00054 #define __vtkInputPort_h
    00055
    00056 #include "vtkSource.h"
    00057
    00058 class vtkPolyData;
    00059 class vtkUnstructuredGrid;
    00060 class vtkStructuredGrid;
    00061 class vtkRectilinearGrid;
    00062 class vtkStructuredPoints;
    00063 class vtkImageData;
    00064 class vtkMultiProcessController;
    00065
    00066 class VTK_PARALLEL_EXPORT vtkInputPort : public vtkSource
    00067 {
    00068 public:
    00069   static vtkInputPort *New();
    00070   vtkTypeRevisionMacro(vtkInputPort,vtkSource);
    00071   void PrintSelf(ostream& os, vtkIndent indent);
    00072
    00074
    00078   vtkPolyData *GetPolyDataOutput();
    00079   vtkUnstructuredGrid *GetUnstructuredGridOutput();
    00080   vtkStructuredGrid *GetStructuredGridOutput();
    00081   vtkRectilinearGrid *GetRectilinearGridOutput();
    00082   vtkStructuredPoints *GetStructuredPointsOutput();
    00083   vtkImageData *GetImageDataOutput();
    00085
    00087
    00090   vtkSetMacro(RemoteProcessId, int);
    00091   vtkGetMacro(RemoteProcessId, int);
    00092   vtkSetMacro(Tag, int);
    00093   vtkGetMacro(Tag, int);
    00095
    00097   void UpdateInformation();
    00098
    00100   void PropagateUpdateExtent(vtkDataObject *vtkNotUsed(output)) {};
    00101
    00103   void UpdateData( vtkDataObject *out );
    00104
    00106   void TriggerAsynchronousUpdate();
    00107
    00109
    00111   vtkMultiProcessController *GetController() {return this->Controller;}
    00112   virtual void SetController(vtkMultiProcessController*);
    00114
    00116
    00121   vtkSetMacro(DoUpdateInformation, int);
    00122   vtkGetMacro(DoUpdateInformation, int);
    00124
    00125 //BTX
    00126
    00127 // Arbitrary tags used by the ports for communication.
    00128   enum Tags {
    00129     DOWN_DATA_TIME_TAG = 98970,
    00130     UPDATE_EXTENT_TAG = 98971,
    00131     TRANSFER_NEEDED_TAG = 98972,
    00132     INFORMATION_TRANSFER_TAG = 98973,
    00133     DATA_TRANSFER_TAG = 98974,
    00134     NEW_DATA_TIME_TAG = 98975
    00135   };
    00136
    00137 //ETX
    00138
    00139 protected:
    00140   vtkInputPort();
    00141   ~vtkInputPort();
    00142
    00143   vtkMultiProcessController *Controller;
    00144   int RemoteProcessId;
    00145   int Tag;
    00146
    00147   unsigned long DataTime;
    00148   unsigned long UpStreamMTime;
    00149   int TransferNeeded;
    00150   int DoUpdateInformation;
    00151 private:
    00152   vtkInputPort(const vtkInputPort&);  // Not implemented.
    00153   void operator=(const vtkInputPort&);  // Not implemented.
    00154 };
    00155
    00156 #endif
    00157
    00158