VTK
dox/Parallel/vtkPOpenFOAMReader.h
Go to the documentation of this file.
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);
00053 
00054 
00055   virtual void SetController(vtkMultiProcessController *);
00056   vtkGetObjectMacro(Controller, vtkMultiProcessController);
00058 
00059 protected:
00060   vtkPOpenFOAMReader();
00061   ~vtkPOpenFOAMReader();
00062 
00063   int RequestInformation(vtkInformation *, vtkInformationVector **,
00064     vtkInformationVector *);
00065   int RequestData(vtkInformation *, vtkInformationVector **,
00066     vtkInformationVector *);
00067 
00068 private:
00069   vtkMultiProcessController *Controller;
00070   caseType CaseType;
00071   unsigned long MTimeOld;
00072   int MaximumNumberOfPieces;
00073   int NumProcesses;
00074   int ProcessId;
00075 
00076   vtkPOpenFOAMReader(const vtkPOpenFOAMReader &); // Not implemented.
00077   void operator=(const vtkPOpenFOAMReader &); // Not implemented.
00078 
00079   void GatherMetaData();
00080   void BroadcastStatus(int &);
00081   void Broadcast(vtkStringArray *);
00082   void AllGather(vtkStringArray *);
00083   void AllGather(vtkDataArraySelection *);
00084 };
00085 
00086 #endif