VTK  9.7.1
vtkFieldDataSerializer.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
19 #ifndef vtkFieldDataSerializer_h
20 #define vtkFieldDataSerializer_h
21 
22 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_6_0
23 #include "vtkObject.h"
24 #include "vtkParallelCoreModule.h" // For export macro
25 
26 // Forward declarations
27 VTK_ABI_NAMESPACE_BEGIN
28 class vtkIdList;
29 class vtkFieldData;
30 class vtkDataArray;
31 class vtkStringArray;
32 class vtkIntArray;
34 
35 class VTKPARALLELCORE_EXPORT vtkFieldDataSerializer : public vtkObject
36 {
37 public:
38  static vtkFieldDataSerializer* New();
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
46  static void SerializeMetaData(vtkFieldData* fieldData, vtkMultiProcessStream& bytestream);
47 
60  static void DeserializeMetaData(vtkMultiProcessStream& bytestream, vtkStringArray* names,
61  vtkIntArray* datatypes, vtkIntArray* dimensions);
62 
66  static void Serialize(vtkFieldData* fieldData, vtkMultiProcessStream& bytestream);
67 
71  static void SerializeTuples(
72  vtkIdList* tupleIds, vtkFieldData* fieldData, vtkMultiProcessStream& bytestream);
73 
80  static void SerializeSubExtent(
81  int subext[6], int gridExtent[6], vtkFieldData* fieldData, vtkMultiProcessStream& bytestream);
82 
88  static void DeSerializeToSubExtent(
89  int subext[6], int gridExtent[6], vtkFieldData* fieldData, vtkMultiProcessStream& bytestream);
90 
94  static void Deserialize(vtkMultiProcessStream& bytestream, vtkFieldData* fieldData);
95 
96 protected:
98  ~vtkFieldDataSerializer() override;
99 
104  static vtkDataArray* ExtractSelectedTuples(vtkIdList* tupleIds, vtkDataArray* inputDataArray);
105 
110  static vtkDataArray* ExtractSubExtentData(
111  int subext[6], int gridExtent[6], vtkDataArray* inputDataArray);
112 
116  VTK_DEPRECATED_IN_9_6_0("Use vtkMultiProcessStream::Push(vtkDataArray*) instead.")
117  static void SerializeDataArray(vtkDataArray* dataArray, vtkMultiProcessStream& bytestream);
118 
123  static void DeserializeDataArray(vtkMultiProcessStream& bytestream, vtkDataArray*& dataArray);
124 
125 private:
127  void operator=(const vtkFieldDataSerializer&) = delete;
128 };
129 
130 VTK_ABI_NAMESPACE_END
131 #endif /* vtkFieldDataSerializer_h */
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
stream used to pass data across processes using vtkMultiProcessController.
a vtkAbstractArray subclass for strings
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:35
#define VTK_DEPRECATED_IN_9_6_0(reason)
a simple class to control print indentation
Definition: vtkIndent.h:28
list of point or cell ids
Definition: vtkIdList.h:25
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
A concrete instance of vtkObject which provides functionality for serializing and de-serializing fiel...
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Represents and manipulates a collection of data arrays.
Definition: vtkFieldData.h:51