VTK  9.5.20251121
vtkXMLWriterBase.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
15
16#ifndef vtkXMLWriterBase_h
17#define vtkXMLWriterBase_h
18
19#include "vtkAlgorithm.h"
20#include "vtkIOXMLModule.h" // For export macro
21
22#include <string> // for std::string
23
24VTK_ABI_NAMESPACE_BEGIN
26
27class VTKIOXML_EXPORT vtkXMLWriterBase : public vtkAlgorithm
28{
29public:
31 void PrintSelf(ostream& os, vtkIndent indent) override;
32
36 enum
37 {
40 };
41
48 enum
49 {
53 };
54
60 enum
61 {
62 Int32 = 32,
63 Int64 = 64
64 };
65
71 enum
72 {
73 UInt32 = 32,
74 UInt64 = 64
75 };
76
78
82 vtkSetMacro(ByteOrder, int);
83 vtkGetMacro(ByteOrder, int);
87
89
93 virtual void SetHeaderType(int);
94 vtkGetMacro(HeaderType, int);
98
100
104 virtual void SetIdType(int);
105 vtkGetMacro(IdType, int);
109
111
117
119
122 vtkSetMacro(WriteToOutputString, bool);
123 vtkGetMacro(WriteToOutputString, bool);
124 vtkBooleanMacro(WriteToOutputString, bool);
125 std::string GetOutputString() { return this->OutputString; }
127
129
134 vtkGetObjectMacro(Compressor, vtkDataCompressor);
136
144
146
149 void SetCompressorType(int compressorType);
155
157
161 void SetCompressionLevel(int compressorLevel);
162 vtkGetMacro(CompressionLevel, int);
164
166
172 virtual void SetBlockSize(size_t blockSize);
173 vtkGetMacro(BlockSize, size_t);
175
177
182 vtkSetMacro(DataMode, int);
183 vtkGetMacro(DataMode, int);
188
190
197 vtkSetMacro(EncodeAppendedData, bool);
198 vtkGetMacro(EncodeAppendedData, bool);
199 vtkBooleanMacro(EncodeAppendedData, bool);
201
203
208 vtkGetMacro(WriteTimeValue, bool);
209 vtkSetMacro(WriteTimeValue, bool);
210 vtkBooleanMacro(WriteTimeValue, bool);
212
216 virtual const char* GetDefaultFileExtension() = 0;
217
222 int Write();
223
224protected:
227
228 // Methods to define the file's major and minor version numbers.
231
232 // The name of the output file.
233 char* FileName;
234
235 // Whether this object is writing to a string or a file.
236 // Default is 0: write to file.
238
239 // The output string.
240 std::string OutputString;
241
242 // The output byte order.
244
245 // The output binary header word type.
247
248 // The output vtkIdType.
250
251 // The form of binary data to write. Used by subclasses to choose
252 // how to write data.
254
255 // Whether to base64-encode the appended data section.
257
258 // Compression information.
260 size_t BlockSize;
261
262 // Compression Level for vtkDataCompressor objects
263 // 1 (worst compression, fastest) ... 9 (best compression, slowest)
265
266 // This variable is used to ease transition to new versions of VTK XML files.
267 // If data that needs to be written satisfies certain conditions,
268 // the writer can use the previous file version version.
269 // For version change 0.1 -> 2.0 (UInt32 header) and 1.0 -> 2.0
270 // (UInt64 header), if data does not have a vtkGhostType array,
271 // the file is written with version: 0.1/1.0.
273
274private:
275 vtkXMLWriterBase(const vtkXMLWriterBase&) = delete;
276 void operator=(const vtkXMLWriterBase&) = delete;
277
278 bool WriteTimeValue = true;
279};
280
281VTK_ABI_NAMESPACE_END
282#endif
Abstract interface for data compression classes.
a simple class to control print indentation
Definition vtkIndent.h:108
void SetByteOrderToBigEndian()
Get/Set the byte order of data written to the file.
virtual void SetIdType(int)
Get/Set the size of the vtkIdType values stored in the file.
vtkDataCompressor * Compressor
vtkGetFilePathMacro(FileName)
Get/Set the name of the output file.
int Write()
Invoke the writer.
vtkSetFilePathMacro(FileName)
Get/Set the name of the output file.
virtual int GetDataSetMajorVersion()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetHeaderType(int)
Get/Set the binary data header word type.
void SetIdTypeToInt32()
Get/Set the size of the vtkIdType values stored in the file.
void SetDataModeToBinary()
Get/Set the data mode used for the file's data.
void SetDataModeToAscii()
Get/Set the data mode used for the file's data.
void SetCompressionLevel(int compressorLevel)
Get/Set compression level.
virtual void SetDataMode(int)
Get/Set the data mode used for the file's data.
void SetCompressorTypeToLZMA()
Convenience functions to set the compressor to certain known types.
virtual int GetDataSetMinorVersion()
void SetCompressorTypeToNone()
Convenience functions to set the compressor to certain known types.
void SetHeaderTypeToUInt32()
Get/Set the binary data header word type.
void SetCompressorTypeToLZ4()
Convenience functions to set the compressor to certain known types.
virtual void SetCompressor(vtkDataCompressor *)
Get/Set the compressor used to compress binary and appended data before writing to the file.
void SetIdTypeToInt64()
Get/Set the size of the vtkIdType values stored in the file.
std::string OutputString
virtual const char * GetDefaultFileExtension()=0
Get the default file extension for files written by this writer.
~vtkXMLWriterBase() override
void SetHeaderTypeToUInt64()
Get/Set the binary data header word type.
void SetCompressorTypeToZLib()
Convenience functions to set the compressor to certain known types.
virtual void SetByteOrder(int)
Get/Set the byte order of data written to the file.
virtual void SetBlockSize(size_t blockSize)
Get/Set the block size used in compression.
void SetByteOrderToLittleEndian()
Get/Set the byte order of data written to the file.
void SetCompressorType(int compressorType)
Convenience functions to set the compressor to certain known types.
void SetDataModeToAppended()
Get/Set the data mode used for the file's data.
std::string GetOutputString()
Enable writing to an OutputString instead of the default, a file.
#define VTK_UNBLOCKTHREADS