MCPcopy Create free account
hub / github.com/Kitware/VTK / ReadMetaData

Method ReadMetaData

IO/IOSS/vtkIOSSCellGridReader.cxx:65–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63vtkIOSSCellGridReader::~vtkIOSSCellGridReader() = default;
64
65int vtkIOSSCellGridReader::ReadMetaData(vtkInformation* metadata)
66{
67 vtkLogScopeF(TRACE, "ReadMetaData");
68 vtkIOSSUtilities::CaptureNonErrorMessages captureMessagesRAII;
69
70 auto& internals = *dynamic_cast<vtkIOSSCellGridReaderInternal*>(this->Internals);
71 if (!internals.UpdateDatabaseNames(this))
72 {
73 return 0;
74 }
75
76 // read time information and generate that.
77 if (!internals.UpdateTimeInformation(this))
78 {
79 return 0;
80 }
81 else
82 {
83 // add timesteps to metadata
84 const auto& timesteps = internals.GetTimeSteps();
85 if (!timesteps.empty())
86 {
87 metadata->Set(vtkStreamingDemandDrivenPipeline::TIME_STEPS(), timesteps.data(),
88 static_cast<int>(timesteps.size()));
89 double time_range[2] = { timesteps.front(), timesteps.back() };
90 metadata->Set(vtkStreamingDemandDrivenPipeline::TIME_RANGE(), time_range, 2);
91 }
92 else
93 {
94 metadata->Remove(vtkStreamingDemandDrivenPipeline::TIME_STEPS());
95 metadata->Remove(vtkStreamingDemandDrivenPipeline::TIME_RANGE());
96 }
97 }
98
99 // read field/entity selection meta-data. i.e. update vtkDataArraySelection
100 // instances for all available entity-blocks, entity-sets, and their
101 // corresponding data arrays.
102 if (!internals.UpdateEntityAndFieldSelections(this))
103 {
104 return 0;
105 }
106
107 // read assembly information.
108 if (!internals.UpdateAssembly(this, &this->AssemblyTag))
109 {
110 return 0;
111 }
112
113 metadata->Set(vtkAlgorithm::CAN_HANDLE_PIECE_REQUEST(), 1);
114 if (internals.HaveRestartFiles())
115 {
116 // All meta-data have been read successfully, so we can release all the regions.
117 // Subsequent ReadMesh calls create only the requested regions (if needed) and release previous
118 // regions (if no longer needed).
119 internals.ReleaseRegions();
120 }
121 return 1;
122}

Callers

nothing calls this directly

Calls 13

UpdateDatabaseNamesMethod · 0.80
UpdateTimeInformationMethod · 0.80
backMethod · 0.80
UpdateAssemblyMethod · 0.80
HaveRestartFilesMethod · 0.80
ReleaseRegionsMethod · 0.80
GetTimeStepsMethod · 0.45
emptyMethod · 0.45
SetMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
frontMethod · 0.45

Tested by

no test coverage detected