------------------------------------------------------------------------------
| 63 | |
| 64 | //------------------------------------------------------------------------------ |
| 65 | void vtkFieldDataSerializer::DeserializeMetaData(vtkMultiProcessStream& bytestream, |
| 66 | vtkStringArray* names, vtkIntArray* datatypes, vtkIntArray* dimensions) |
| 67 | { |
| 68 | if (bytestream.Empty()) |
| 69 | { |
| 70 | vtkGenericWarningMacro("ByteStream is empty"); |
| 71 | return; |
| 72 | } |
| 73 | |
| 74 | if ((names == nullptr) || (datatypes == nullptr) || (dimensions == nullptr)) |
| 75 | { |
| 76 | vtkGenericWarningMacro("ERROR: caller must pre-allocation names/datatypes/dimensions!"); |
| 77 | return; |
| 78 | } |
| 79 | |
| 80 | // STEP 0: Extract the number of arrays |
| 81 | int NumberOfArrays; |
| 82 | bytestream >> NumberOfArrays; |
| 83 | if (NumberOfArrays == 0) |
| 84 | { |
| 85 | return; |
| 86 | } |
| 87 | |
| 88 | // STEP 1: Allocate output data-structures |
| 89 | names->SetNumberOfValues(NumberOfArrays); |
| 90 | datatypes->SetNumberOfValues(NumberOfArrays); |
| 91 | dimensions->SetNumberOfComponents(2); |
| 92 | dimensions->SetNumberOfTuples(NumberOfArrays); |
| 93 | |
| 94 | std::string* namesPtr = names->GetPointer(0); |
| 95 | int* datatypesPtr = datatypes->GetPointer(0); |
| 96 | int* dimensionsPtr = dimensions->GetPointer(0); |
| 97 | |
| 98 | // STEP 2: Extract metadata for each array in corresponding output arrays |
| 99 | for (int arrayIdx = 0; arrayIdx < NumberOfArrays; ++arrayIdx) |
| 100 | { |
| 101 | bytestream >> datatypesPtr[arrayIdx] >> dimensionsPtr[arrayIdx * 2] >> |
| 102 | dimensionsPtr[arrayIdx * 2 + 1] >> namesPtr[arrayIdx]; |
| 103 | } // END for all arrays |
| 104 | } |
| 105 | |
| 106 | //------------------------------------------------------------------------------ |
| 107 | void vtkFieldDataSerializer::Serialize(vtkFieldData* fieldData, vtkMultiProcessStream& bytestream) |
nothing calls this directly
no test coverage detected