VTK
|
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 =========================================================================*/ 00028 #ifndef __vtkXMLPMultiBlockDataWriter_h 00029 #define __vtkXMLPMultiBlockDataWriter_h 00030 00031 #include "vtkIOParallelModule.h" // For export macro 00032 #include "vtkXMLMultiBlockDataWriter.h" 00033 00034 class vtkCompositeDataSet; 00035 class vtkMultiProcessController; 00036 00037 class VTKIOPARALLEL_EXPORT vtkXMLPMultiBlockDataWriter : public vtkXMLMultiBlockDataWriter 00038 { 00039 public: 00040 static vtkXMLPMultiBlockDataWriter* New(); 00041 vtkTypeMacro(vtkXMLPMultiBlockDataWriter, vtkXMLMultiBlockDataWriter); 00042 void PrintSelf(ostream& os, vtkIndent indent); 00043 00045 00049 virtual void SetController(vtkMultiProcessController*); 00050 vtkGetObjectMacro(Controller, vtkMultiProcessController); 00052 00056 virtual void SetWriteMetaFile(int flag); 00057 00058 //BTX 00059 protected: 00060 vtkXMLPMultiBlockDataWriter(); 00061 ~vtkXMLPMultiBlockDataWriter(); 00062 00068 virtual void FillDataTypes(vtkCompositeDataSet*); 00069 00070 vtkMultiProcessController* Controller; 00071 00073 00080 virtual int WriteComposite(vtkCompositeDataSet* compositeData, 00081 vtkXMLDataElement* parent, int ¤tFileIndex); 00083 00085 00093 int ParallelWriteNonCompositeData( 00094 vtkDataObject* dObj, vtkXMLDataElement* parentXML, 00095 int currentFileIndex); 00097 00099 00102 virtual vtkStdString CreatePieceFileName( 00103 int currentFileIndex, int procId, int dataSetType); 00105 00108 virtual void RemoveWrittenFiles(const char* subDirectory); 00109 00110 private: 00111 vtkXMLPMultiBlockDataWriter(const vtkXMLPMultiBlockDataWriter&); // Not implemented. 00112 void operator=(const vtkXMLPMultiBlockDataWriter&); // Not implemented. 00113 00114 class vtkInternal; 00115 vtkInternal* Internal; 00116 //ETX 00117 }; 00118 00119 #endif 00120 00121