00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPOpenFOAMReader.h 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 =========================================================================*/ 00029 #ifndef __vtkPOpenFOAMReader_h 00030 #define __vtkPOpenFOAMReader_h 00031 00032 #include "vtkOpenFOAMReader.h" 00033 00034 class vtkDataArraySelection; 00035 class vtkMultiProcessController; 00036 00037 class VTK_PARALLEL_EXPORT vtkPOpenFOAMReader : public vtkOpenFOAMReader 00038 { 00039 public: 00040 //BTX 00041 enum caseType { DECOMPOSED_CASE = 0, RECONSTRUCTED_CASE = 1 }; 00042 //ETX 00043 static vtkPOpenFOAMReader *New(); 00044 vtkTypeMacro(vtkPOpenFOAMReader, vtkOpenFOAMReader); 00045 00046 void PrintSelf(ostream &os, vtkIndent indent); 00047 00049 00050 void SetCaseType(const int t); 00051 vtkGetMacro(CaseType, caseType); 00052 // Description: 00053 // Set and get the controller. 00054 virtual void SetController(vtkMultiProcessController *); 00055 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00057 00058 protected: 00059 vtkPOpenFOAMReader(); 00060 ~vtkPOpenFOAMReader(); 00061 00062 int RequestInformation(vtkInformation *, vtkInformationVector **, 00063 vtkInformationVector *); 00064 int RequestData(vtkInformation *, vtkInformationVector **, 00065 vtkInformationVector *); 00066 00067 private: 00068 vtkMultiProcessController *Controller; 00069 caseType CaseType; 00070 unsigned long MTimeOld; 00071 int MaximumNumberOfPieces; 00072 int NumProcesses; 00073 int ProcessId; 00074 00075 vtkPOpenFOAMReader(const vtkPOpenFOAMReader &); // Not implemented. 00076 void operator=(const vtkPOpenFOAMReader &); // Not implemented. 00077 00078 void GatherMetaData(); 00079 void BroadcastStatus(int &); 00080 void Broadcast(vtkStringArray *); 00081 void AllGather(vtkStringArray *); 00082 void AllGather(vtkDataArraySelection *); 00083 }; 00084 00085 #endif