VTK  9.7.1
vtkXMLPDataObjectWriter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
45 #ifndef vtkXMLPDataObjectWriter_h
46 #define vtkXMLPDataObjectWriter_h
47 
48 #include "vtkIOParallelXMLModule.h" // For export macro
49 #include "vtkXMLWriter.h"
50 
51 VTK_ABI_NAMESPACE_BEGIN
52 class vtkCallbackCommand;
54 
55 class VTKIOPARALLELXML_EXPORT vtkXMLPDataObjectWriter : public vtkXMLWriter
56 {
57 public:
59  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
62 
67  vtkSetMacro(NumberOfPieces, int);
68  vtkGetMacro(NumberOfPieces, int);
70 
72 
78  vtkSetMacro(StartPiece, int);
79  vtkGetMacro(StartPiece, int);
80  vtkSetMacro(EndPiece, int);
81  vtkGetMacro(EndPiece, int);
83 
85 
88  vtkSetMacro(GhostLevel, int);
89  vtkGetMacro(GhostLevel, int);
91 
93 
96  vtkSetMacro(UseSubdirectory, bool);
97  vtkGetMacro(UseSubdirectory, bool);
99 
101 
107  virtual void SetWriteSummaryFile(int flag);
108  vtkGetMacro(WriteSummaryFile, int);
109  vtkBooleanMacro(WriteSummaryFile, int);
111 
113 
123  virtual void SetController(vtkMultiProcessController*);
124  vtkGetObjectMacro(Controller, vtkMultiProcessController);
126 
132  vtkInformationVector* outputVector) override;
133 
134 protected:
136  ~vtkXMLPDataObjectWriter() override;
137 
141  int WriteInternal() override;
142 
146  int WriteData() override;
147 
151  virtual void WritePData(vtkIndent indent) = 0;
152 
157  virtual int WritePiece(int index) = 0;
158 
163  virtual int WritePieceInternal() = 0;
164 
168  virtual int RequestUpdateExtent(vtkInformation* request, vtkInformationVector** inputVector,
169  vtkInformationVector* outputVector);
170 
176  virtual void PrepareSummaryFile();
177 
181  virtual void WritePPieceAttributes(int index);
182 
184 
187  char* CreatePieceFileName(int index, const char* path = nullptr);
188  void SplitFileName();
190 
194  static void ProgressCallbackFunction(vtkObject*, unsigned long, void*, void*);
195 
200  vtkGetMacro(ContinuingExecution, bool);
201 
205  vtkGetMacro(CurrentPiece, int);
206 
210  virtual void ProgressCallback(vtkAlgorithm* w);
211 
215  void DeleteFiles();
216 
221 
223 
225  int EndPiece;
230 
231  char* PathName;
235 
239  unsigned char* PieceWrittenFlags;
240 
244  virtual void SetupPieceFileNameExtension();
245 
246 private:
248  void operator=(const vtkXMLPDataObjectWriter&) = delete;
249 
253  int CurrentPiece;
254 
259  bool ContinuingExecution;
260 };
261 
262 VTK_ABI_NAMESPACE_END
263 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
Store vtkAlgorithm input/output information.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
Write data in a parallel XML format.
virtual int WriteData()
Definition: vtkXMLWriter.h:161
int vtkTypeBool
Definition: vtkABI.h:64
supports function callbacks
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:53
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:53
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual int WriteInternal()
vtkMultiProcessController * Controller
unsigned char * PieceWrittenFlags
Flags used to keep track of which pieces were written out.
vtkCallbackCommand * InternalProgressObserver
The observer to report progress from the internal writer.
Store zero or more vtkInformation instances.
Multiprocessing communication superclass.