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

Method ReadMetaData

IO/IOSS/vtkIOSSReader.cxx:285–342  ·  view source on GitHub ↗

----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

283
284//----------------------------------------------------------------------------
285int vtkIOSSReader::ReadMetaData(vtkInformation* metadata)
286{
287 vtkLogScopeF(TRACE, "ReadMetaData");
288 vtkIOSSUtilities::CaptureNonErrorMessages captureMessagesRAII;
289
290 auto& internals = (*this->Internals);
291 if (!internals.UpdateDatabaseNames(this))
292 {
293 return 0;
294 }
295
296 // read time information and generate that.
297 if (!internals.UpdateTimeInformation(this))
298 {
299 return 0;
300 }
301 else
302 {
303 // add timesteps to metadata
304 const auto& timesteps = internals.GetTimeSteps();
305 if (!timesteps.empty())
306 {
307 metadata->Set(vtkStreamingDemandDrivenPipeline::TIME_STEPS(), timesteps.data(),
308 static_cast<int>(timesteps.size()));
309 double time_range[2] = { timesteps.front(), timesteps.back() };
310 metadata->Set(vtkStreamingDemandDrivenPipeline::TIME_RANGE(), time_range, 2);
311 }
312 else
313 {
314 metadata->Remove(vtkStreamingDemandDrivenPipeline::TIME_STEPS());
315 metadata->Remove(vtkStreamingDemandDrivenPipeline::TIME_RANGE());
316 }
317 }
318
319 // read field/entity selection meta-data. i.e. update vtkDataArraySelection
320 // instances for all available entity-blocks, entity-sets, and their
321 // corresponding data arrays.
322 if (!internals.UpdateEntityAndFieldSelections(this))
323 {
324 return 0;
325 }
326
327 // read assembly information.
328 if (!internals.UpdateAssembly(this, &this->AssemblyTag))
329 {
330 return 0;
331 }
332
333 metadata->Set(vtkAlgorithm::CAN_HANDLE_PIECE_REQUEST(), 1);
334 if (internals.HaveRestartFiles())
335 {
336 // All meta-data have been read successfully, so we can release all the regions.
337 // Subsequent ReadMesh calls create only the requested regions (if needed) and release previous
338 // regions (if no longer needed).
339 internals.ReleaseRegions();
340 }
341 return 1;
342}

Callers 2

RequestInformationMethod · 0.45
GetTimeOfCurrentStepMethod · 0.45

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