1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkPDataSetGhostGenerator.h 5 6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 7 All rights reserved. 8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 9 10 This software is distributed WITHOUT ANY WARRANTY; without even 11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 12 PURPOSE. See the above copyright notice for more information. 13 14 =========================================================================*/ 15 // .NAME vtkPDataSetGhostGenerator.h -- Base class for parallel ghost generators 16 // 17 // .SECTION Description 18 // An abstract class that provides common functionality and implements an 19 // interface for all parallel ghost data generators. 20 // 21 // .SECTION See Also 22 // vtkDataSetGhostGenerator, vtkPUniformGridGhostDataGenerator, 23 // vtkPStructuredGridGhostDataGenerator, vtkPRectilinearGridGhostDataGenerator 24 25 #ifndef VTKPDATASETGHOSTGENERATOR_H_ 26 #define VTKPDATASETGHOSTGENERATOR_H_ 27 28 #include "vtkFiltersParallelGeometryModule.h" // For export macro 29 #include "vtkDataSetGhostGenerator.h" 30 31 class vtkMultiProcessController; 32 class vtkMultiBlockDataSet; 33 34 class VTKFILTERSPARALLELGEOMETRY_EXPORT vtkPDataSetGhostGenerator : 35 public vtkDataSetGhostGenerator 36 { 37 public: 38 vtkTypeMacro(vtkPDataSetGhostGenerator,vtkDataSetGhostGenerator); 39 void PrintSelf(ostream& os, vtkIndent indent); 40 41 // Description: 42 // Get/Set macro for the multi-process controller. If a controller is not 43 // supplied, then, the global controller is assumed. 44 vtkSetMacro(Controller, vtkMultiProcessController*); 45 vtkGetMacro(Controller, vtkMultiProcessController*); 46 47 // Description: 48 // Initializes 49 void Initialize(); 50 51 // Description: 52 // Barrier synchronization 53 void Barrier(); 54 55 protected: 56 vtkPDataSetGhostGenerator(); 57 virtual ~vtkPDataSetGhostGenerator(); 58 59 // Description: 60 // Creates ghost layers. Implemented by concrete implementations. 61 virtual void GenerateGhostLayers( 62 vtkMultiBlockDataSet *in, vtkMultiBlockDataSet *out)=0; 63 64 int Rank; 65 bool Initialized; 66 vtkMultiProcessController *Controller; 67 68 private: 69 vtkPDataSetGhostGenerator(const vtkPDataSetGhostGenerator&); // Not implemented 70 void operator=(const vtkPDataSetGhostGenerator&); // Not implemented 71 }; 72 73 #endif /* VTKPDATASETGHOSTGENERATOR_H_ */ 74