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 ¤tFileIndex); 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