VTK
dox/Parallel/vtkXMLPMultiBlockDataWriter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkXMLPMultiBlockDataWriter.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 =========================================================================*/
00025 #ifndef __vtkXMLPMultiBlockDataWriter_h
00026 #define __vtkXMLPMultiBlockDataWriter_h
00027 
00028 #include "vtkXMLMultiBlockDataWriter.h"
00029 
00030 class vtkCompositeDataSet;
00031 class vtkMultiProcessController;
00032 
00033 class VTK_PARALLEL_EXPORT vtkXMLPMultiBlockDataWriter : public vtkXMLMultiBlockDataWriter
00034 {
00035 public:
00036   static vtkXMLPMultiBlockDataWriter* New();
00037   vtkTypeMacro(vtkXMLPMultiBlockDataWriter, vtkXMLMultiBlockDataWriter);
00038   void PrintSelf(ostream& os, vtkIndent indent);
00039 
00041 
00045   virtual void SetController(vtkMultiProcessController*);
00046   vtkGetObjectMacro(Controller, vtkMultiProcessController);
00048 
00052   virtual void SetWriteMetaFile(int flag);
00053 
00054 //BTX
00055 protected:
00056   vtkXMLPMultiBlockDataWriter();
00057   ~vtkXMLPMultiBlockDataWriter();
00058 
00064   virtual void FillDataTypes(vtkCompositeDataSet*);
00065 
00066   vtkMultiProcessController* Controller;
00067 
00069 
00076   virtual int WriteComposite(vtkCompositeDataSet* compositeData, 
00077                              vtkXMLDataElement* parent, int &currentFileIndex);
00079 
00081 
00089   int ParallelWriteNonCompositeData(
00090     vtkDataObject* dObj, vtkXMLDataElement* parentXML, 
00091     int currentFileIndex);
00093 
00095 
00098   virtual vtkStdString CreatePieceFileName(
00099     int currentFileIndex, int procId, int dataSetType);
00101 
00104   virtual void RemoveWrittenFiles(const char* subDirectory);
00105 
00106 private:
00107   vtkXMLPMultiBlockDataWriter(const vtkXMLPMultiBlockDataWriter&); // Not implemented.
00108   void operator=(const vtkXMLPMultiBlockDataWriter&); // Not implemented.
00109 
00110   class vtkInternal;
00111   vtkInternal* Internal;
00112 //ETX
00113 };
00114 
00115 #endif
00116 
00117