VTK  9.3.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
16 #ifndef vtkXMLPDataObjectWriter_h
17 #define vtkXMLPDataObjectWriter_h
18 
19 #include "vtkIOParallelXMLModule.h" // For export macro
20 #include "vtkXMLWriter.h"
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkCallbackCommand;
25 
26 class VTKIOPARALLELXML_EXPORT vtkXMLPDataObjectWriter : public vtkXMLWriter
27 {
28 public:
30  void PrintSelf(ostream& os, vtkIndent indent) override;
31 
33 
36  vtkSetMacro(NumberOfPieces, int);
37  vtkGetMacro(NumberOfPieces, int);
39 
41 
44  vtkSetMacro(StartPiece, int);
45  vtkGetMacro(StartPiece, int);
46  vtkSetMacro(EndPiece, int);
47  vtkGetMacro(EndPiece, int);
49 
51 
54  vtkSetMacro(GhostLevel, int);
55  vtkGetMacro(GhostLevel, int);
57 
59 
62  vtkSetMacro(UseSubdirectory, bool);
63  vtkGetMacro(UseSubdirectory, bool);
65 
67 
73  virtual void SetWriteSummaryFile(int flag);
74  vtkGetMacro(WriteSummaryFile, int);
75  vtkBooleanMacro(WriteSummaryFile, int);
77 
79 
84  virtual void SetController(vtkMultiProcessController*);
85  vtkGetObjectMacro(Controller, vtkMultiProcessController);
87 
93  vtkInformationVector* outputVector) override;
94 
95 protected:
97  ~vtkXMLPDataObjectWriter() override;
98 
102  int WriteInternal() override;
103 
107  int WriteData() override;
108 
112  virtual void WritePData(vtkIndent indent) = 0;
113 
118  virtual int WritePiece(int index) = 0;
119 
124  virtual int WritePieceInternal() = 0;
125 
129  virtual int RequestUpdateExtent(vtkInformation* request, vtkInformationVector** inputVector,
130  vtkInformationVector* outputVector);
131 
137  virtual void PrepareSummaryFile();
138 
142  virtual void WritePPieceAttributes(int index);
143 
145 
148  char* CreatePieceFileName(int index, const char* path = nullptr);
149  void SplitFileName();
151 
155  static void ProgressCallbackFunction(vtkObject*, unsigned long, void*, void*);
156 
161  vtkGetMacro(ContinuingExecution, bool);
162 
166  vtkGetMacro(CurrentPiece, int);
167 
171  virtual void ProgressCallback(vtkAlgorithm* w);
172 
176  void DeleteFiles();
177 
182 
184 
186  int EndPiece;
191 
192  char* PathName;
196 
200  unsigned char* PieceWrittenFlags;
201 
205  virtual void SetupPieceFileNameExtension();
206 
207 private:
209  void operator=(const vtkXMLPDataObjectWriter&) = delete;
210 
214  int CurrentPiece;
215 
220  bool ContinuingExecution;
221 };
222 
223 VTK_ABI_NAMESPACE_END
224 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:51
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:147
int vtkTypeBool
Definition: vtkABI.h:64
supports function callbacks
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:51
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.